#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
const int N = 1e5 + 20;
int m[N];
struct comp {
bool operator() (const pair <int , int> &lhs, const pair <int , int> &rhs) const {
return lhs.first > rhs.first;
}
};
int32_t main()
{
ios_base :: sync_with_stdio(0);
cin.tie(0);
set <pair <int , int> , comp> s;
s.insert({1 , 1});
s.insert({1 , 2});
s.insert({1 , 3});
s.insert({1 , 4});
for(auto x : s)
cout << x.first << " " << x.second << endl;
return 0;
}
I expected the above code to print : 1 1 1 2 1 3 1 4
But it only prints :
1 1
However that works fine without the comparator. Why is this strange thing happening?