c++ set comparator code example
Example 1: set in c++
#include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
//set mentains internally the ascending order of these numbers
void setDemo()
{
set<int> S;
S.insert(1);
S.insert(2);
S.insert(-1);
S.insert(-10);
S.erase(1);//to remove an element
//Print all the values of the set in ascending order
for(int x:S){
cout<<x<<" ";
}
//check whether an element is present in a set or not
auto it = S.find(-1);//this will return an iterator to -1
//if not present it will return an iterator to S.end()
if (it == S.end()){
cout<<"not Present\n";
}else{
cout <<" present\n";
cout << *it <<endl;
}
//iterator to the first element in the set which is
//greater than or equal to -1
auto it2 = S.lower_bound(-1);
//for strictly greater than -1
auto it3 = S.upper_bound(-1);
//print the contents of both the iterators
cout<<*it2<<" "<<*it3<<endl;
}
int main() {
setDemo();
return 0;
}
Example 2: c++ custom compare in set
struct compare {
bool operator() (const int& x, const int& y) const {
return x<y; // if x<y then x will come before y. Change this condition as per requirement
}
};
int main()
{
set<int,compare> s; //use the comparator like this
}
Example 3: c++ set comparator
set<int, less<int>> st;
// or
set<int, greater<int>> st;
// c++ 11
auto cmp = [](int a, int b) { return ... };
set<int, decltype(cmp)> s(cmp);