public member function
<unordered_map>
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, the range returned has end as both its lower and upper range bounds.
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.