在线文档教程
C++
容器 | Containers

std::multimap::equal_range

STD::Multimap::EQUAL[医]范围

std::pair equal_range( const Key& key (1)
std::pair<const_iterator,const_iterator> equal_range( const Key& key ) const;(2)
template< class K > std::pair<iterator,iterator> equal_range( const K& x (3)(since C++14)
template< class K > std::pair<const_iterator,const_iterator> equal_range( const K& x ) const;(4)(since C++14)

返回包含容器中具有给定键的所有元素的范围。范围由两个迭代器定义,一个指向第一个元素,即不折不扣key另一个指向第一个元素更大key或者,第一个迭代器可以用lower_bound(),第二个upper_bound()...

1,2%29将密钥与key...

3,4%29将键与值进行比较。x。此重载仅在下列情况下才参与重载解析:Compare::is_transparent是有效的,并表示类型。它们允许调用此函数,而无需构造Key...

参数

key-key value to compare the elements to
x-alternative value that can be compared to Key

返回值

std::pair包含一对迭代器,定义想要的范围:第一个指向第一个元素,而不是再少点key第二个指向第一个元素更大key...

如果没有元素不折不扣key,超过-结束%28见end()%29迭代器作为第一个元素返回。类似地,如果没有元素更大key,则返回作为第二个元素的过去-结束迭代器。

Since insert always inserts at the upper bound, the order of equivalent elements in the equal range is the order of insertion.(since C++11)

复杂性

容器大小的对数。

二次

#include <iostream> #include <map> int main() { std::multimap<int, char> dict { {1, 'A'}, {2, 'B'}, {2, 'C'}, {2, 'D'}, {4, 'E'}, {3, 'F'} }; auto range = dict.equal_range(2 for (auto i = range.first; i != range.second; ++i) { std::cout << i->first << ": " << i->second << '\n'; } }

二次

产出:

二次

2: B 2: C 2: D

二次

另见

findfinds element with specific key (public member function)
upper_boundreturns an iterator to the first element greater than the given key (public member function)
lower_boundreturns an iterator to the first element not less than the given key (public member function)

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/container/Multimap/EQUAL[医]范围