The result of equal_range , namely your range object, is a pair of two iterators [beginning-of-range, end-of-range) . So you want to iterate over [range.first, range.second) :
auto range = m.equal_range(4); +---+---+---+---+---+---+---+---+---+ | 2 | 3 | 3 | 4 | 4 | 4 | 4 | 5 | 6 | =: m +---+---+---+---+---+---+---+---+---+ ^ ^ | | range.first range.second
Kerrek SB
source share