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
| 12
 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.