最も小さい値が先頭
vector<int> v;
// do something...
sort(v.begin(), v.end());
最も大きい値が先頭
vector<int> v;
// do something...
sort(v.begin(), v.end(), greater<>());
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());
Sorting HOW TO - Python 3.9.2 documentation
比較関数は順序が
第一引数→第二引数だったら負の値
第二引数→第一引数だったら正の値