排序
sort的用法
*sort(起始地址, 结束地址的下一位, 比较字符);
vector<int> v = {5, 1, 3, 9, 11}; sort(v.begin(), v.end());//默认升序 for(int i = 1; i <= v.size(); ++i) cout << a[i] << ' ';
子定义比较函数
bool cmp(const int &u, const int &v) { return u > v; } int main(){ ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); vector<int> v = {5, 1, 3, 9, 11}; sort(v.begin(), v.end(),cmp);//降序排序 for(int i = 0; i < v.size(); ++i) cout << v[i] << ' '; }
vertor<int> v = {5, 1, 3, 9, 11}; sort(v.begin(), v.end(), [](const int &u, const int &v)) {//降序排序 return u > v; }; for(int i = 0; i < v.size(); ++i) cout << v[i] << ' ';
结构体可以将小于号重载后进行排序,当然用前面的方法也是可行的
struct Node{ int u, v; bool operator < (const Node &m) const{ return u == m.u? v < m.v : u < m.u; } };