C++ STL 中的 set::value_comp() 函数


本文将讨论 C++ STL 中的 set::value_comp(),包括其语法、工作原理和返回值。

什么是 C++ STL 中的 Set?

C++ STL 中的 Set 是一种容器,它必须包含按特定顺序排列的唯一元素。Set 必须包含唯一元素,因为元素的值标识该元素。一旦将值添加到 Set 容器中,就不能修改它,尽管我们仍然可以从 Set 中删除或添加值。Set 使用二叉搜索树。

什么是 set::value_comp()?

value_comp() 是 C++ STL 中的一个内置函数,声明在 <set> 头文件中。value_comp() 返回比较对象的副本,该对象由 Set 容器用于比较。默认情况下,此对象小于运算符的对象。它是一种函数指针或函数对象,用于比较同一类型 Set 中的两个值的比较,如果第一个元素小于容器中的第二个元素,则返回 true,否则返回 false。在 Set 容器中,值本身就是键,因此它们以排序的格式放置在 Set 容器中,因此函数 value_comp() 和 key_comp() 的工作方式类似。

语法

comparison_object set_name.value_comp();

参数

此函数不接受任何参数。

返回值

此函数返回关联 Set 容器的比较对象。

示例

Input: set <int> myset = {9, 8, 7, 6, 5};
   set<int>::value_compare cmp = myset.value_comp()
Output: 5 6 7 8 9

示例

在线演示

#include <bits/stdc++.h>
using namespace std;
int main(){
   set<int> Set;
   set<int>::value_compare cmp = Set.value_comp();
   for (int i = 0; i <= 10; i++)
      Set.insert(i);
   cout<<"elements in set are: ";
   int front = *Set.rbegin();
   set<int>::iterator i = Set.begin();
   do {
      std::cout << *i << " ";
   }
   while (cmp(*(++i), front));
   std::cout << '\n';
   return 0;
}

输出

如果运行上述代码,将生成以下输出:

elements in set are : 0 1 2 3 4 5 6 7 8 9

更新于:2020年3月5日

206 次浏览

启动您的职业生涯

完成课程后获得认证

开始学习
广告