问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C++中有专门给对象数组排序的类方法吗,就像Java中的sort

发布网友 发布时间:2022-09-01 10:33

我来回答

2个回答

热心网友 时间:2024-11-18 04:11

使用sort排序结构体网上例子很多的 就是先写一个排序函数
然后让sort按照你的函数排序就行了

STL 里面有个 sort 函数,可以直接对数组排序,复杂度为 n*log2(n) 。使用这个函数,需要包含头文件。
这个函数可以传两个参数或三个参数。第一个参数是要排序的区间首地址,第二个参数是区间尾地址的下一地址。也就是说,排序的区间是 [a,b) 。简单来说,有一个数组 int a[100] ,要对从 a[0] 到 a[99] 的元素进行排序,只要写 sort(a,a+100) 就行了,默认的排序方式是升序。
拿我出的“ AC 的策略”这题来说,需要对数组 t 的第 0 到 len-1 的元素排序,就写 sort(t,t+len);
对向量 v 排序也差不多, sort(v.begin(),v.end());
如果是没有定义小于运算的数据类型,或者想改变排序的顺序,就要用到第三参数——比较函数。比较函数是一个自己定义的函数,返回值是 bool 型,它规定了什么样的关系才是“小于”。想把刚才的整数数组按降序排列,可以先定义一个比较函数 cmp
bool cmp(int a,int b)
{
return a>b;
}
排序的时候就写 sort(a,a+100,cmp);
假设自己定义了一个结构体 node
struct node{
int a;
int b;
double c;
}
有一个 node 类型的数组 node arr[100] ,想对它进行排序:先按 a 值升序排列,如果 a 值相同,再按 b 值降序排列,如果 b 还相同,就按 c 降序排列。就可以写这样一个比较函数:
以下是代码片段:
bool cmp(node x,node y)
{
if(x.a!=y.a) return x.a
if(x.b!=y.b) return x.b>y.b;
return return x.c>y.c;
}
排序时写 sort(a,a+100,cmp);

热心网友 时间:2024-11-18 04:11

qsort(…)
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 为什么右边脸上老是长痘痘呢 梦到已故祖父满脸是血的从棺材里出来骂我!麻烦帮我解答一下 干橙子片泡茶喝。有啥疗效? 帮我给未来的儿子起个名字我姓穆 妻子王 如何删除苹果手机屏幕使用时间? 香嫩下饭的鱼香茄子怎样做口感会更好,味道美味 健康食品的经典广告语 ...可总是坐不上,昨晚上又梦到没坐上车,可是我骂了司机,最后又向他说... 知道可以定位吗 孩子肚子上鼓个小包包不痛不痒是怎么啦?在肚子左侧靠下部位有指肚大小... 男人肚子左边有时出现一个小鼓包是怎么回事对人有没有害处 男生小肚子左侧疼有个包怎么回事 肚子左边下午的时候长了一个包,走路活动的时候疼,怎么... 周公解梦梦见白色菊花的含义 梦幻西游 PT的自在心法 梦幻西游手游普陀自在心法是单体技吗 小牛向前冲的主题曲是什么 小红书图片比例怎么改 汽车没电搭电也启动不了怎么办 周公解梦梦见星星的含义 coreldraw x4中为什么有的时候无法将一个图形至页面最前面显示_百度知 ... 类,各对象排序问题(手动,自动修改顺序) 经常梦见之前离职岗位几十次,是一种什么心理? 为什么右脸长痘痘 新飞冰箱冷藏室旋钮是怎么回事 新飞冰箱冷藏室的旋钮是干什么的 每天早餐两个鸡蛋轻松减肥,早餐鸡蛋应该怎么吃 我想找。谁知道微信群二维码去哪里找? 红海滩最佳观赏时间 ...窗外刮着很大很大的风。空气中弥漫着难闻的气味 花胶适合搭配哪些食材煲汤最好 现在小学生练字帖上面用的薄薄的纸叫什么 QQ空间的游戏怎么关? 请问我要如何退出QQ空间的游戏应用,不想隐藏! 什么地方的大麦茶最出名 如何回退HarmonyOS2版本? 原味戚风蛋糕怎么做? 车被朋友开走了找不到车和人怎么办 b2b,b2b电子商务平台,和b2c的区别是什么? B2B与B2C有什么区别? B2B和B2C有什么区别和优劣势呢?