问答文章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
哪个牌子复印机好 复印店用什么型号的复印机好 开复印店需要什么设备 家用打印复印机哪个好 如何分辨鞋底是不是空心格子底? Ubuntu10.04下安装Oracle11g 超市监控多少钱 超市防盗器要多少钱 超市防盗系统多少钱 智能存放柜管理系统 48小时核酸检测结果在哪里查询-48小时核酸检测怎么看结果 为什么右边脸上老是长痘痘呢 梦到已故祖父满脸是血的从棺材里出来骂我!麻烦帮我解答一下 干橙子片泡茶喝。有啥疗效? 帮我给未来的儿子起个名字我姓穆 妻子王 如何删除苹果手机屏幕使用时间? 香嫩下饭的鱼香茄子怎样做口感会更好,味道美味 健康食品的经典广告语 ...可总是坐不上,昨晚上又梦到没坐上车,可是我骂了司机,最后又向他说... 知道可以定位吗 孩子肚子上鼓个小包包不痛不痒是怎么啦?在肚子左侧靠下部位有指肚大小... 男人肚子左边有时出现一个小鼓包是怎么回事对人有没有害处 男生小肚子左侧疼有个包怎么回事 肚子左边下午的时候长了一个包,走路活动的时候疼,怎么... 周公解梦梦见白色菊花的含义 梦幻西游 PT的自在心法 梦幻西游手游普陀自在心法是单体技吗 小牛向前冲的主题曲是什么 小红书图片比例怎么改 汽车没电搭电也启动不了怎么办 周公解梦梦见星星的含义 coreldraw x4中为什么有的时候无法将一个图形至页面最前面显示_百度知 ... 类,各对象排序问题(手动,自动修改顺序) 经常梦见之前离职岗位几十次,是一种什么心理? 为什么右脸长痘痘 新飞冰箱冷藏室旋钮是怎么回事 新飞冰箱冷藏室的旋钮是干什么的 每天早餐两个鸡蛋轻松减肥,早餐鸡蛋应该怎么吃 我想找。谁知道微信群二维码去哪里找? 红海滩最佳观赏时间 ...窗外刮着很大很大的风。空气中弥漫着难闻的气味 花胶适合搭配哪些食材煲汤最好 现在小学生练字帖上面用的薄薄的纸叫什么 QQ空间的游戏怎么关? 请问我要如何退出QQ空间的游戏应用,不想隐藏! 什么地方的大麦茶最出名 如何回退HarmonyOS2版本? 原味戚风蛋糕怎么做? 车被朋友开走了找不到车和人怎么办 b2b,b2b电子商务平台,和b2c的区别是什么? B2B与B2C有什么区别? B2B和B2C有什么区别和优劣势呢?