公共成员函数
<map>

std::map::key_comp

key_compare key_comp() const;
返回键比较对象
返回一个副本,其中包含容器用于比较键的比较对象

map 对象的比较对象构建时设置。其类型(成员 key_compare)是 map 模板的第三个模板参数。默认情况下,这是一个 less 对象,其返回值与 operator< 相同。

此对象决定容器中元素的顺序:它是一个函数指针或函数对象,它接受与元素键相同类型的两个参数,并返回true如果第一个参数在它定义的严格弱序中被认为排在第二个参数之前,则返回false否则为 false。

key_comp返回 11。false两个键被视为等效,无论键作为参数传递的顺序如何。

参数



返回值

比较对象。
成员类型key_compare是与容器关联的比较对象的类型,在 map 中定义为其第三个模板参数(Compare).

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// 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;
}

输出
mymap contains:
a => 100
b => 200
c => 300


复杂度

常量。

迭代器有效性

没有变化。

数据竞争

访问容器。
不访问任何包含的元素:并发访问或修改它们是安全的。

异常安全

强保证:如果抛出异常,容器没有发生变化。

另见