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;
获取指定键的元素范围
返回容器中所有键与 k 相等的元素的范围的界限。

如果 k 在容器中不匹配任何键,则返回一个空范围(即,一个 pair,其两个成员firstsecond相等)。

参数

k
要比较的键值。
成员类型key_type是容器中元素的键的类型,在 unordered_multimap 中定义为其第一个模板参数().

返回值

该函数返回一个 pair,其成员pair::first是范围的下界迭代器,而pair::second是其上界迭代器。范围内的元素是这两个迭代器之间的元素,包括pair::first,但不包括pair::second.

成员类型iteratorconst_iteratorforward iterator 类型。

示例

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;
}

输出
Entries with strawberry: LA OK


复杂度

平均情况:常量。
最坏情况:相对于 容器大小 线性。

迭代器有效性

没有变化。

另见