public member function
<unordered_set>

std::unordered_multiset::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 在容器中未匹配到任何元素,则返回的范围的两个边界都将是 end

参数

k
要比较的值。
成员类型key_type是容器中元素的类型。在 unordered_set 容器中,它与value_type相同,定义为类模板参数的别名().

返回值

该函数返回一个 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
// 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;
}

输出
These pigs were found: pig pig pig


复杂度

平均情况:常量。
最坏情况:与 容器大小 成线性关系。

迭代器有效性

没有变化。

另见