C++ STL中的multimap key_comp()
std::multimap::key_comp() 是C++ STL中的内置函数,它返回容器所使用的比较对象的副本。默认情况下,这是一个less对象,它返回与运算符'<‘相同的结果。它是一个函数指针或一个函数对象,它接受与容器元素相同类型的两个参数,并返回true,如果第一个参数在它定义的严格弱序关系中被认为在第二个参数前面或false,如果前者在后者之后。如果key_comp返回false(即使以相同的键作为参数传递,这里没有考虑顺序问题),则两个键被认为是相等的。
语法:
key_compare multimap_name.key_comp();
参数: 此函数不接受任何参数。
返回值: 该函数返回容器所使用的比较对象的副本。
下面的示例说明了multimap::key_comp()方法:
示例1:
// C++ program to illustrate the
// multimap::key_comp() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 创建名为m的multimap;
multimap<char, int> m;
multimap<char, int>::key_compare
comp
= m.key_comp();
// 将元素插入到multimap中
m.insert(make_pair('a', 10));
m.insert(make_pair('b', 20));
m.insert(make_pair('c', 30));
m.insert(make_pair('d', 40));
cout << "Multimap has the elements\n";
//存储最后一个元素的键值
char l = m.rbegin()->first;
//初始化迭代器
map<char, int>::iterator it = m.begin();
//打印所有multimap的元素
do {
cout << it->first
<< " => "
<< it->second
<< '\n';
} while (comp((*it++).first, l));
return 0;
}
Multimap has the elements
a => 10
b => 20
c => 30
d => 40
示例2:
// C++ program to illustrate the
// multimap::key_comp() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// 创建名为m的multimap;
multimap<char, int> m;
multimap<char, int>::key_compare
comp
= m.key_comp();
// 将元素插入到multimap中
m.insert(make_pair('a', 100));
m.insert(make_pair('b', 200));
m.insert(make_pair('c', 300));
m.insert(make_pair('d', 400));
cout << "Multimap has the elements\n";
//存储最后一个元素的键值
char l = m.rbegin()->first;
//初始化迭代器
map<char, int>::iterator it = m.begin();
//打印所有multimap的元素
do {
cout << it->first
<< " => "
<< it->second
<< '\n';
} while (comp((*it++).first, l));
return 0;
}
Multimap has the elements
a => 100
b => 200
c => 300
d => 400