multiset value_comp() method in C++ STL

The std::multiset::value_comp is an inbuilt function in C++ STL which returns a copy of the comparison object used by the container.By default, this is a less object, which returns the same as operator ‘<'.It is a function pointer or a function object which takes two arguments of the same type as the container elements and returns true if the first argument is considered to go before the second in the strict weak ordering it defines or false otherwise.Two keys are considered equivalent if key_comp returns false reflexively (i.e., no matter the order in which the keys are passed as arguments).

Syntax:

value_compare multiset_name.value_comp() 

Parameters: This function does not accept any parameter.

Return value: The function returns a copy of the comparison object used by the container.

Below examples illustrate the above method:



Example 1:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate the
// multiset::value_comp() function
  
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // Creating a multiset named m;
    multiset<int> m;
  
    multiset<int>::value_compare
        comp
        = m.value_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;
}

chevron_right


Output:

Multiset has the elements
 10 20 30 40

Example 2:

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate the
// multiset::value_comp() function
  
#include <bits/stdc++.h>
using namespace std;
  
int main()
{
  
    // Creating a multiset named m;
    multiset<int> m;
  
    multiset<int>::value_compare
        comp
        = m.value_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;
}

chevron_right


Output:

Multiset has the elements
 100 200 300 400


My Personal Notes arrow_drop_up

All powers are within you You can do anything and everything Believe in that

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.