中易网

C/c++ sort用法

答案:3  悬赏:20  
解决时间 2021-02-16 20:04
C/c++ sort用法
最佳答案
.默认的sort函数是按升序排。对应于1)
sort(a,a+n); //两个参数分别为待排序数组的首地址和尾地址
2.可以自己写一个cmp函数,按特定意图进行排序。对应于2)
例如:
int cmp( const int &a, const int &b ){
if( a > b )
return 1;
else
return 0;
}
sort(a,a+n,cmp);
是对数组a降序排序
又如:
int cmp( const POINT &a, const POINT &b ){
if( a.x < b.x )
return 1;
else
if( a.x == b.x ){
if( a.y < b.y )
return 1;
else
return 0;
}
else
return 0;
}
sort(a,a+n,cmp);
是先按x升序排序,若x值相等则按y升序排
全部回答
引用头文件algorithm,直接传入数组,和排序的区间

首先调用 algorithm
然后sort(起点,终点,比较准则)
比较准则默认是小于等于号,所以sort的结果是从小到大
比较准则可以自拟,比如大于等于,奇偶性等等。这个准则可以是class可以是function#include <iostream>     // std::cout
#include <algorithm>    // std::sort
#include <vector>       // std::vector
bool myfunction (int i,int j) { return (i<j); }
struct myclass {
  bool operator() (int i,int j) { return (i<j);}
} myobject;
int main () {
  int myints[] = {32,71,12,45,26,80,53,33};
  std::vector<int> myvector (myints, myints+8);               
  // 32 71 12 45 26 80 53 33
  // using default comparison (operator <):
  std::sort (myvector.begin(), myvector.begin()+4);           
  //(12 32 45 71)26 80 53 33
  // using function as comp
  std::sort (myvector.begin()+4, myvector.end(), myfunction); 
  // 12 32 45 71(26 33 53 80)
  // using object as comp
  std::sort (myvector.begin(), myvector.end(), myobject);     
  //(12 26 32 33 45 53 71 80)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
本科,数学专业,想考公务员,但很多都是要求计
老张老陈 (打一成语)成语谜语大全及答案
请问这个美女叫什么名字
乌克兰女孩为什么喜欢中国
2015款索八有定速巡航吗
家里油烟机里的油有什么用途?
完结言情小说免费阅读
天下3 天府开转入问题
大众帕沙特最低配多少钱
一部狼人的电影有很多床戏叫什么名字
我是一位高中生,现在高三,将临就要高考,可
一般什么情况下电脑才需要重装系统?
我正在学习带钢的销售,请问他们说的材料要高
告诉我一件有名的人类爱护动物的故事,现在急
圆形灯管32w和40w有什么区别
推荐资讯
小说主角要有带入感吗?
冬青路/天竺路(路口)我想知道这个在什么地方
51单片机程序里执行一条nop指令需要多长时间
忘仙宠物如何快速升级攻略
想要学习运筹学需要哪些数学基础?
我爸爸85岁还搞破鞋,我该怎么办呢
左溢现在在干嘛呢
我女朋友走了,跪下求不他都要和我分手,我可
单反直出哪家强?
为什么鹅比鸡贵
寻梅村在哪里啊,我有事要去这个地方
马说一文,没遇见伯乐,千里马会有怎样悲惨的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?