一.C++中SORT函数使用方法
void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);
(1)第一个参数first:是要排序的数组的起始地址。
(2)第二个参数last:是结束的地址(最后一个数据的后一个数据的地址)
(3)第三个参数comp是排序的方法:可以是从升序也可是降序。如果第三个参数不写,则默认的排序方法是从小到大排序。
bool cmp(int a,int b){
return a>b;}
可以引用cmp来实现倒着排序。
结构体数组排序可以参考:
1 #include<iostream>
2 #include<algorithm>
3 #include"vector"
4 using namespace std;
5 typedef struct student{
6 char name[20];
7 int math;
8 //按math从大到小排序
9 inline bool operator < (const student &x) const {
10 return math>x.math ;
11 }
12 }Student;
13 main(){
14 Student a[4]={{"apple",67},{"limei",90},{"apple",90}};
15 sort(a,a+3);
16 for(int i=0;i<3;i++)
17 cout<<a[i].name <<" "<<a[i].math <<" " <<endl;
18 }
元素本身为class或者struct,类内部需要重载< 运算符,实现元素的比较;
注意事项:bool operator<(const className & rhs) const; 如何参数为引用,需要加const,这样临时变量可以赋值;重载operator<为常成员函数,可以被常变量调用;
二. N=sizeof(a)/sizeof(int) 用来求数组A的元素个数。
统计个数:count(first,last,查询的元素) 在序列中统计某个元素出现的个数。
比较:equal():两个序列中的元素都相等的时候为真;
mismatch(A1,A1+N,A2)找出两个序列相异的第一个元素。
pair:将两个数据合在一起。pair<数据类型,数据类型>.p1
p1.first()
p1.second()