key는 내림차순
으로, value는 오름차순
으로 정렬하고 싶을 때 사용가능한 코드이다.
#include<iostream>
#include<vector>
using namespace std;
struct Compare{
bool operator()(pair<int,int>a,pair<int,int>b){
if(a.first==b.first)
return a.second<b.second;
return a.first>b.first;
}
};
int main(){
vector<pair<int,int>> m{
{1, 9},
{1, 8},
{1, 4},
{8, 3},
{8, 9},
{4, 3},
{4, 9},
{1, 5}
};
sort(m.begin(),m.end(),Compare());
for(auto e: m){
cout<<"{ "<<e.first<<", "<<e.second<<"}\n";
}
}
/*
* expected output
* 1. order first of each element in descending order,
* 2. order second of each element in ascending order.
{ 8, 3}
{ 8, 9}
{ 4, 3}
{ 4, 9}
{ 1, 4}
{ 1, 5}
{ 1, 8}
{ 1, 9}
*/
재밌당
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.