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
广告