C++

昇順にソート

最も小さい値が先頭

vector<int> v;
// do something...
sort(v.begin(), v.end());

降順にソート

最も大きい値が先頭

vector<int> v;
// do something...
sort(v.begin(), v.end(), greater<>());

pairのsecondでソート

using P = pair<int, int>;
bool CompareBySecond(const P& a, const P& b) {
  if(a.second != b.second) {
    return a.second < b.second;
  } else {
    return a.first < b.first;
  }
}
....

vector<int> v;
// do something...
sort(v.begin(), v.end(), CompareBySecond); // 第3引数は関数なので、()無し!!

// or
sort(v.begin(), v.end(),
	[](const P& a, const P& b){
		if(a.second != b.second) {
	    return a.second < b.second;
	  } else {
	    return a.first < b.first;
	  }
	}
);

重複を削除

vector<int> v;
// do something...
sort(v.begin(), v.end());

// sort済みのコンテナの重複を削除
v.erase(unique(v.begin(), v.end()), v.end());

Python

ソートの比較関数を定義

Sorting HOW TO - Python 3.9.2 documentation

比較関数は順序が

第一引数→第二引数だったら負の値

第二引数→第一引数だったら正の値