std::multimap<Key,T,Compare,Allocator>:: equal_range
|
std::
pair
<
iterator, iterator
>
equal_range
(
const
Key
&
key
)
;
|
(1) | (自 C++26 起为 constexpr) |
|
std::
pair
<
const_iterator, const_iterator
>
equal_range ( const Key & key ) const ; |
(2) | (自 C++26 起为 constexpr) |
|
template
<
class
K
>
std:: pair < iterator, iterator > equal_range ( const K & x ) ; |
(3) |
(自 C++14 起)
(自 C++26 起为 constexpr) |
|
template
<
class
K
>
std::
pair
<
const_iterator, const_iterator
>
|
(4) |
(自 C++14 起)
(自 C++26 起为 constexpr) |
返回一个包含容器中所有具有给定键的元素的区间。该区间由两个迭代器定义,一个指向第一个 不小于 给定键的元素,另一个指向第一个大于给定键的元素。
或者,第一个迭代器可以通过 lower_bound() 获得,第二个迭代器可以通过 upper_bound() 获得。
目录 |
参数
| key | - | 用于比较元素的键值 |
| x | - |
可与
Key
进行比较的替代值
|
返回值
std::pair 包含一对定义所需范围的迭代器:
- 第一个迭代器指向第一个不小于给定键的元素,若不存在此类元素则返回 end ( ) 。
- 第二个迭代器指向第一个大于给定键的元素,若不存在此类元素则返回 end ( ) 。
|
由于
|
(since C++11) |
复杂度
与容器大小呈对数关系。
注释
| 功能测试 宏 | 值 | 标准 | 功能 |
|---|---|---|---|
__cpp_lib_generic_associative_lookup
|
201304L
|
(C++14) | 关联容器 中的异构比较查找,用于重载版本 ( 3,4 ) |
示例
#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
另请参阅
|
查找具有特定键的元素
(公开成员函数) |
|
|
(C++20)
|
检查容器是否包含具有特定键的元素
(公开成员函数) |
|
返回匹配特定键的元素数量
(公开成员函数) |
|
|
返回指向第一个
大于
给定键的元素的迭代器
(公开成员函数) |
|
|
返回指向第一个
不小于
给定键的元素的迭代器
(公开成员函数) |
|
|
返回匹配特定键的元素范围
(函数模板) |