<C++>sort排序||对结构体进行排序||对一维或二维vector排序

本文详细介绍了如何在C++中使用`vector`实现自定义排序规则,包括一维和二维vector,以及如何通过自定义比较函数进行排序。重点讨论了`sort`函数和自定义比较函数的用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//结构体



#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自定义排序-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-breezeyy-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值