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


複雜度

平均情況:常量。
最壞情況:相對於 容器大小 線性。

迭代器有效性

沒有變化。

另見