c++二维数组用sort排序具体是怎样排序的?
一个二维数组,是可以用sort进行排序的,可以选择根据某一列来进行排序,如果不重写cmp函数,那么默认的是根据第一列来排序,当然我们可以通过重写来根据其他列来排序:
/* Input matrix
m = [
1 4 2
0 8 3
3 5 1
]
*/// 按第一列升序排(默认)
sort(m.begin(), m.end());
/*
m = [
0 8 3
1 4 2
3 5 1
]
*/// 按第一列降序排列
sort(m.rbegin(), m.rend());
/*
m = [
3 5 1
1 4 2
0 8 3
]
*/
// 按第二列升序排列
sort(m.begin(), m.end(), [](const vector<int> &a, const vector<int> &b) { return a[1] < b[1]; } );bool cmp(const vector<int> &a, const vector<int> &b) {
return a[1] < b[1];
}
sort(m.begin(), m.end(), cmp);
/*
m = [
1 4 2
3 5 1
0 8 3
]
*/
// 按第二列降序排列
sort(m.begin(), m.end(), [](const vector<int> &a, const vector<int> &b) { return a[1] > b[1]; } );bool cmp(const vector<int> &a, const vector<int> &b) {
return a[1] > b[1];
}
sort(m.begin(), m.end(), cmp);
/*
m = [
0 8 3
3 5 1
1 4 2
]
*/
更多推荐
所有评论(0)