C ++ STL中的multiset value_comp()方法
std :: multiset :: value_comp 是C ++ STL中的内置函数,它返回容器使用的比较对象的副本。默认情况下,这是一个less对象,它返回与运算符“<”相同的内容。它是一个函数指针或函数对象,它将两个与容器元素相同类型的参数作为输入,并在其严格弱顺序定义中将第一个参数视为在第二个参数之前,如果否则返回false。如果key_comp反射性地返回false(即无论键以何种顺序作为参数传递),则认为两个键相等。
语法:
value_compare multiset_name.value_comp()
参数: 此函数不接受任何参数。
返回值: 该函数返回容器使用的比较对象的副本。以下示例说明上述方法:
示例1:
// C ++程序说明
// multiset :: value_comp()函数
包括&lt; bits / stdc ++.h&gt;
使用命名空间std;
int main()
{
//创建名为m的多重集合;
multiset<int> m;
multiset<int> :: value_compare
comp
= m.value_comp();
//将元素插入多重集合中
m.insert(10);
m.insert(20);
m.insert(30);
m.insert(40);
cout << “Multiset has the elements \ n”;
//存储最后一个元素的键值
int highest =*m.rbegin();
//初始化迭代器
multiset<int> :: iterator it = m.begin();
//打印所有多重集合的元素
do {
cout << “” << *it;
} while (comp(*it ++,highest));
返回0;
}
输出:
Multiset has the elements
10 20 30 40
示例2:
// C ++程序说明
// multiset :: value_comp()函数
包括&lt; bits / stdc ++.h&gt;
使用命名空间std;
int main()
{
//创建名为m的多重集合;
multiset<int> m;
multiset<int> :: value_compare
comp
= m.value_comp();
//将元素插入多重集合中
m.insert(100);
m.insert(200);
m.insert(300);
m.insert(400);
cout << “Multiset has the elements \ n”;
//存储最后一个元素的键值
int highest =* m.rbegin();
//初始化迭代器
multiset<int> ::iterator it = m.begin();
//打印所有多重集合的元素
do {
cout << “” << *it;
} while (comp(*it ++,highest));
返回0;
}
输出:
Multiset has the elements
100 200 300 400
时间复杂度: O(n)。// n是多重集合的大小。
辅助空间: O(1)。