📅  最后修改于: 2023-12-03 14:59:46.160000             🧑  作者: Mango
set::key_comp()
函数用于返回当前集合中用于比较元素的比较函数。
语法:
key_compare key_comp() const;
该函数是一个成员函数,它不会修改元素,也不会抛出任何异常。
该函数无参数。
该函数返回类型为 key_compare
,是一个用于比较元素的函数对象。
#include <iostream>
#include <set>
int main() {
std::set<int> mySet;
auto cmp = mySet.key_comp();
mySet.insert(10);
mySet.insert(20);
mySet.insert(30);
int highest = *mySet.rbegin();
std::cout << "Set contains:";
for (int i = 1; i <= highest; ++i) {
if (cmp(i, *mySet.begin())) {
std::cout << ' ' << i;
}
}
std::cout << '\n';
return 0;
}
输出:
Set contains: 1 2 3 4 5 6 7 8 9
上述代码中,我们创建了一个整型的 set
,并获得其比较函数 cmp
。接着我们插入了三个元素 10
、20
、30
。最后我们使用 cmp
来输出 1
到 highest
中存在于集合中的元素。
set::key_comp()
函数用于比较元素的方式由集合的 Compare
模板参数所决定,默认情况下使用 <
运算符比较元素。同时,该函数可以用于在多个不同集合中比较不同元素,但需要注意不用于排序和插入。