C++ STL 中的 multimap equal_range()
multimap::equal_range() 是 C++ STL 中的一个内置函数,它返回一对对的迭代器。这对对表示一个范围的边界,该范围包括与 k 有等效键的容器中的所有元素。 如果与键 K 没有匹配项,则返回的范围长度为 0,两个迭代器指向容器内部比较对象(key_comp)将 k 视为在其后的第一个键的第一个元素。
语法:
iterator multimap_name.equal_range(key)
参数:
该函数接受一个必填参数 key ,它指定要返回其范围的容器中的元素。
返回值:
该函数返回一对对的迭代器。这对对表示一个范围的边界,该范围包括与 k 有等效键的容器中的所有元素。 如果与键 K 没有匹配项,则返回的范围长度为 0,两个迭代器指向容器内部比较对象(key_comp)将 k 视为在其后的第一个键的第一个元素。
下面的程序说明了上述方法:
// C++ program to illustrate the
// multimap::equal_range() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// initialize container
multimap<int, int> mp;
// insert elements in random order
mp.insert({ 2, 30 });
mp.insert({ 1, 40 });
mp.insert({ 3, 60 });
mp.insert({ 1, 20 });
mp.insert({ 5, 50 });
// Stores the range of key 1
auto it = mp.equal_range(1);
cout << "The multimap elements of key 1 is : \n";
cout << "KEY\tELEMENT\n";
// Prints all the elements of key 1
for (auto itr = it.first; itr != it.second; ++itr) {
cout << itr->first
<< '\t' << itr->second << '\n';
}
return 0;
}
输出:
The multimap elements of key 1 is :
KEY ELEMENT
1 40
1 20