sort函数
sort函数可以排序任何类型的函数,包括自己写的结构体
(sort函数效率高)
头文件
#include<algorithm>
排序数值
从小到大
int num[10]={1,9,3,5,6,7,4,3,32,2};
//sort(num+i,num+j),从num[i]到num[j-1]之间的元素进行排序
sort(num,num+10);//从num[0]--num[9]的元素进行排序 ,
//1 2 3 3 4 5 6 7 9 32
sort(num+2,num+10);//从num[2]--num[9]的元素进行排序
//1 9 2 3 3 4 5 6 7 32
从大到小
a、使用greater
int num[10]={1,9,3,5,6,7,4,3,32,2};
//greater表示个更大的意思,<int>表示排序的数组元素的类型是int,排序其他类型的数据可更改参数
sort(num,num+10,greater<int>());
//32 9 7 6 5 4 3 3 2 1
b、自定义一个比较大小的函数
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int num[10]={1,9,3,5,6,7,4,3,32,2};
sort(num,num+10,cmp);
//输出:32 9 7 6 5 4 3 3 2 1
return 0;
}
排序(自定义)结构体
#include<iOStream>
#include<string>
#include<algorithm>//sort函数包含的头文件
using namespace std;
//定义一个学生类型的结构体
typedef struct student
{
string name; //学生姓名
int achievement; //学生成绩
} student;
//这是函数是sort函数的第三个参数
//如果希望升序排序,就是"<",降序排列就是">"号
//如果希望用其他的参数作为排序条件,只需要把相应的条件改一下(如果改成name),这样结构体就以name作为排序标准
bool comparison(student a,student b){
return a.achievement<b.achievement;
}
//用来显示学生信息的函数
void show(student *stu,int n)
{
for(int i = 0; i < n; i++)
{
cout<<"姓名:"<<stu[i].name<<'\t'<<"成绩:"<<stu[i].achievement<<endl;
}
}
int main()
{
student stu[] = { {"张三",99},{"李四",87},{"王二",100} ,{"麻子",60}};
cout<<"排序前:"<<endl;
show(stu,4);
sort(stu,stu+4,comparison);
cout<<"排序后:"<<endl;
show(stu,4);
return 0;
}
相关阅读
1.strcpy函数 原型:strcpy(str1,str2); 功能:将字符串str2复制到字符串str1中,并覆盖str1原始字符串,可以用来为字符串变量赋值 返回
Matlab是一个很强大的数据处理软件,是人们进行数据分析的得力助手。一般我们做社会调研或科学研究时,会得到很多实验数据。当需要研
概述 手写排序算法几乎是程序员面试必问的题目,大多数人都会选择写冒泡排序,如果此时你写的是其他改进过的排序算法,相信会让面试官
在研究一份AES加密代码的时候,发现代码从command line获取数据仅仅使用了read函数,很是疑问。从command line获取数据不是要使用sca
[matalb]polyfit多项式拟合函数以及polyval
polyfit polyfit函数简介 polyfit函数是matlab中用于进行曲线拟合的一个函数。其数学基础是最小二乘法曲线拟合原理。曲线