public member function
<unordered_map>

std::unordered_multimap::equal_range

pair<iterator,iterator> equal_range ( const key_type& k );pair<const_iterator,const_iterator> equal_range ( const key_type& k ) const;
Get range of elements with specific key
Returns the bounds of a range that includes all the elements in the container with a key that compares equal to k.

If k does not match any key in the container, an empty range is returned (i.e., a pair where both its members first and second compare equal).

Parameters

k
Key value to be compared.
Member type key_type is the type of the keys for the elements in the container, defined in unordered_multimap as an alias of its first template parameter (Key).

Return value

The function returns a pair, where its member pair::first is an iterator to the lower bound of the range, and pair::second is an iterator to its upper bound. The elements in the range are those between these two iterators, including pair::first, but not pair::second.

Member types iterator and const_iterator are forward iterator types.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// unordered_multimap::equal_range #include <iostream> #include <string> #include <unordered_map> #include <algorithm> typedef std::unordered_multimap<std::string,std::string> stringmap; int main () { stringmap myumm = { {"orange","FL"}, {"strawberry","LA"}, {"strawberry","OK"}, {"pumpkin","NH"} }; std::cout << "Entries with strawberry:"; auto range = myumm.equal_range("strawberry"); for_each ( range.first, range.second, [](stringmap::value_type& x){std::cout << " " << x.second;} ); return 0; }

Output:
Entries with strawberry: LA OK 


Complexity

Average case: constant.
Worst case: linear in container size.

Iterator validity

No changes.

See also