set value_comp() function in C++ STL

In this article we are going to discuss the set::value_comp() in C++ STL, their syntax, working and their return values.

What is Set in C++ STL?

Sets in C++ STL are the containers which must have unique elements in a general order. Sets must have unique elements because the value of the element identifies the element. Once added a value in set container later can’t be modified, although we can still remove or add the values to the set. Sets are used as binary search trees.

What is set::value_comp()?

value_comp() is an inbuilt function in C++ STL which is declared in <set> header file. value_comp() returns a copy of the comparison object, which is used by the set container for the comparisons. By default, this object is less than the operator’s object. It is a type of function pointer or a function object which do the comparison of the two values of the same type in a particular set and returns true if the first element is smaller than the second element in the container, else it returns false. In set containers the values are the keys themselves so they are placed in the set container in the sorted format, so the function value_comp() and key_comp() works in a similar manner.


comparison_object set_name.value_comp();


This function accepts no parameters.

Return value

This function returns a comparison object of the associated set container.


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


 Live Demo

#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++)
   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;


If we run the above code it will generate the following output −

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

Updated on: 05-Mar-2020


Kickstart Your Career

Get certified by completing the course

Get Started