public member function
<unordered_set>
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 that compare equal to k.
If k does not match any element in the container, the range returned has end as both its lower and upper range bounds.
Parameters
- k
- Value to be compared.
Member type key_type is the type of the elements in the container. In unordered_set containers it is the same as value_type, defined as an alias of the class's 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
|
// unordered_multiset::equal_range
#include <iostream>
#include <string>
#include <unordered_set>
int main ()
{
std::unordered_multiset<std::string> myums =
{"cow","pig","pig","chicken","pig","chicken"};
auto myrange = myums.equal_range("pig");
std::cout << "These pigs were found:";
while ( myrange.first != myrange.second ) {
std::cout << " " << *myrange.first++;
}
std::cout << std::endl;
return 0;
}
|
Output:
These pigs were found: pig pig pig
|
Complexity
Average case: constant.
Worst case: linear in container size.
Iterator validity
No changes.