pair<iterator,iterator>equal_range(key)使用
时间: 2024-02-18 10:02:27 浏览: 63
STL库中的multimap类提供了一个名为equal_range的成员函数,用于查找multimap中所有键值等于指定键值的元素的范围。equal_range函数的语法如下:
```c++
pair<iterator, iterator> equal_range(const key_type& key);
```
其中,key参数表示需要查找的键值。
equal_range函数返回一个pair,包含两个迭代器,表示键值等于指定键值的元素范围。第一个迭代器指向第一个键值等于指定键值的元素,第二个迭代器指向最后一个键值等于指定键值的元素的下一个位置。
如果multimap中不存在键值等于指定键值的元素,则返回的pair中两个迭代器都指向multimap的end()位置。
使用equal_range函数可以方便地查找multimap中所有键值等于指定键值的元素。
相关问题
pair<iterator,iterator>equal_range(key)的使用例子
好的,下面是一个使用pair<iterator,iterator>equal_range(key)函数的例子:
```c++
#include <iostream>
#include <map>
using namespace std;
int main()
{
// 创建一个multimap对象
multimap<int, string> mm;
// 插入一些数据
mm.insert(make_pair(1, "one"));
mm.insert(make_pair(2, "two"));
mm.insert(make_pair(3, "three"));
mm.insert(make_pair(2, "second")));
mm.insert(make_pair(4, "four"));
// 查找键值等于2的元素范围
pair<multimap<int, string>::iterator, multimap<int, string>::iterator> range = mm.equal_range(2);
// 遍历结果
for (auto it = range.first; it != range.second; ++it)
{
cout << it->first << " : " << it->second << endl;
}
return 0;
}
```
上述代码中,我们创建一个multimap对象mm,插入了5个键值/值对。然后使用equal_range函数查找键值等于2的元素范围,将结果保存在一个pair对象range中,遍历range中的元素并输出。输出结果如下:
```
2 : two
2 : second
```
可以看到,输出结果中只有键值等于2的两个元素被找到并输出。
unordered_multimap equal_range函数
unordered_multimap::equal_range函数返回一个pair对象,其中包含了一个迭代器范围,该范围内的元素都与指定的键相等。这个函数的语法如下:
```c++
pair<iterator,iterator> equal_range (const key_type& k);
```
其中,key_type是unordered_multimap中键的类型,k是要查找的键值。该函数返回一个pair对象,其中first成员是一个迭代器,指向第一个与k相等的元素;second成员也是一个迭代器,指向最后一个与k相等的元素的下一个位置。如果没有找到与k相等的元素,则返回的pair对象中的两个迭代器都指向unordered_multimap的末尾。
使用equal_range函数可以方便地查找unordered_multimap中所有键值与指定键值相等的元素。
阅读全文
相关推荐















