//结构体
#include<algorithm>
struct point
{
int x;
int y;
int dis;//距离
int p;
}p[201];
//自拟定排序规则:按dis从小到大排序,如果dis相等按p从小到大排序
bool com(const point p1,const point p2)
{
if(p1.dis==p2.dis)
return p1.p<p2.p;
return p1.dis<p2.dis;
}
int main()
{
sort(p,p+n,com);
}
//一维vector
vector<int> vec{1,2,3,4};
//默认从小到大排序 1234
sort(vec.begin(),vec.end());
//从大到小排序 4321
sort(vec.begin(),vec.end(),greater<int>());
//二维vector
//二维
vector<vector<int>> vec{{0,2},{1,5},{1,9},{4,6},{5,9},{8,10}};
//默认优先对第一元素进行从小到大排序,第一元素相同的,按照第二元素从小到大排序
sort(vec.begin(),vec.end()); //[0,2],[1,5],[1,9],[4,6],[5,9],[8,10]
//自拟定排序函数
static bool cmp(const vector<int>& v1, const vector<int>& v2){
//如果第一元素相等,则比较第二元素
if (v1[0] == v2[0])
return v1[1] < v2[1];
return v1[0] > v2[0];
}
vector<vector<int>> vec{{0,2},{1,5},{1,9},{4,6},{5,9},{8,10}};
sort(vec.begin(),vec.end(),cmp);
//[8,10],[5,9],[4,6],[1,5],[1,9],[0,2]
C++ vector 自定义排序规则(vector<vector<int>>、vector<pair<int,int>>)_vector自定义排序-优快云博客
本文详细介绍了如何在C++中使用`vector`实现自定义排序规则,包括一维和二维vector,以及如何通过自定义比较函数进行排序。重点讨论了`sort`函数和自定义比较函数的用法。
767

被折叠的 条评论
为什么被折叠?



