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