欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C++STL之sort的用法总结

程序员文章站 2022-07-12 14:50:41
...

sort用法一:
对于基本类型的数组大小从小到大排序:
sort(数组名+n1,数组名+n2);
n1和n2都是int类型的表达式,可以包含变量;
如果n1=0,则+n1可以不写;
将数组中下表范围为[n1,n2)的元素从小到大排序。下标n2不在排序范围内。

sort用法二:
对于元素类型为T的基本类型数组大小从大到小排序:
sort(数组名+n1,数组名+n2,greater);
T为int /double/float/long/char等等;
sort用法三:
用自定义的排序规则,对任何类型的T的数组排序:
sort(数组名+n1,数组名+n2,排序规则结构名());
排序规则结构的定义方式:

struct  结构名
{
		bool operator()( const T & a1,const T & a2)
		const{
				//若a1应该在a2前面,则返回true
				//否则返回false
				}
}

演示:

struct rule
{
	bool operator()( const int &a1,const int & a2)const{
			return a1>a2; 
	}
};
int main()
{
int a[]={5,4,6,7,8,9};
sort(a,a+4,rule())}

sort还可以用在结构体的排序:

struct student{
	char name[20];
	int id;
	double gpa;
};
student students[]={{"jack",112,3.4},{"mary",102,3.5},
					{"ala",333,3}};

struct rule
{
	bool operator()( const student & s1,const student & s2)const{
			if(strcmp(s1.name,s2.name))
					return true;
			return false;
	}
};
相关标签: stl库 stl c++