C++官网参考链接:https://cplusplus.com/reference/map/map/key_comp/
公有成员函数
<map>
std::map::key_comp
key_compare key_comp() const;
返回键比较对象
返回容器用于比较键的比较对象的副本。
map对象的比较对象在构造(construction)时设置。它的类型(成员key_compare)是map模板的第三个模板形参。默认情况下,这是一个less对象,返回与operator<相同的值。
这个对象决定了容器中元素的顺序:它是一个函数指针或函数对象,接受两个与元素键类型相同的实参,如果按照它定义的严格弱顺序,第一个实参被认为排在第二个实参之前,则返回true,否则返回false。
如果key_comp条件反射地返回false(即,无论键作为实参传递的顺序如何),则认为两个键是等价的。
形参
没有形参。
返回值
比较对象。
成员类型key_compare是与容器关联的比较对象的类型,在map中定义为其第三个模板形参(Compare)的别名。
用例
// map::key_comp
#include <iostream>
#include <map>
int main ()
{
std::map<char,int> mymap;
std::map<char,int>::key_compare mycomp = mymap.key_comp();
mymap['a']=100;
mymap['b']=200;
mymap['c']=300;
std::cout << "mymap contains:\n";
char highest = mymap.rbegin()->first; // key value of last element
std::map<char,int>::iterator it = mymap.begin();
do {
std::cout << it->first << " => " << it->second << '\n';
} while ( mycomp((*it++).first, highest) );
std::cout << '\n';
return 0;
}
输出:
复杂度
常量。
iterator的有效性
没有变化。
数据竞争
访问容器。
不访问包含的元素:同时访问或修改它们是安全的。
异常安全
强保证:如果抛出异常,则容器中不会有任何更改。