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


複雜度

平均情況:常量。
最壞情況:與 容器大小 成線性關係。

迭代器有效性

沒有變化。

另見