C++ STL中的multiset key_comp()函数
std::multiset :: key_comp()是C ++ STL中的内置函数,它返回容器使用的比较对象的副本。默认情况下,这是一个小于对象,它返回与运算符'<‘相同。它是一个函数指针或函数对象,它需要与容器元素相同类型的两个参数,并在定义它的严格弱序中,如果认为第一个参数相对于第二个参数是在其前面,则返回true,否则返回false。如果key_comp反射性地返回false,则认为两个键是等效的(即无论以什么顺序将键作为参数传递)。
语法:
key_compare multiset_name.key_comp();
参数: 此函数不接受任何参数。
返回值: 该函数返回容器使用的比较对象的副本。
以下示例说明了multiset :: key_comp()方法:
示例1:
// C++ program to illustrate the
// multiset::key_comp() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// Creating a multiset named m;
multiset<int> m;
multiset<int>::key_compare
comp
= m.key_comp();
// Inserting elements into multiset
m.insert(10);
m.insert(20);
m.insert(30);
m.insert(40);
cout << "Multiset has the elements\n";
// Store key value of last element
int highest = *m.rbegin();
// initializing the iterator
multiset<int>::iterator it = m.begin();
// printing elements of all multiset
do {
cout << " " << *it;
} while (comp(*it++, highest));
return 0;
}
Multiset has the elements
10 20 30 40
示例2:
// C++ program to illustrate the
// multiset::key_comp() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// Creating a multiset named m;
multiset<int> m;
multiset<int>::key_compare
comp
= m.key_comp();
// Inserting elements into multiset
m.insert(100);
m.insert(200);
m.insert(300);
m.insert(400);
cout << "Multiset has the elements\n";
// Store key value of last element
int highest = *m.rbegin();
// initializing the iterator
multiset<int>::iterator it = m.begin();
// printing elements of all multiset
do {
cout << " " << *it;
} while (comp(*it++, highest));
return 0;
}
Multiset has the elements
100 200 300 400