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

Tags:

Misc Example