c++常用STL总结(排序与查找算法)
来源:华佗健康网
排序算法 sort
默认将数组进行从小到大排序
Sort(数组名+n1,数组名+n2) 将数组下标为[n1,n2)的元素进行排序,注意左闭右开
Sort(数组名+n1,数组名+n2,greater< T >()); 将数据类型为基本数据类型为T的数组从大到小进行排序
Sort(数组名+n1,数组名+n2,排序规则结构名()); 用自定义的排序规则,对任何类型T的数组排序
有些时候不需要写成结构形式,直接写一个函数就行
排序规则结构:
Struct 结构名
{
bool operator() (const T&a1,const T&a2) const{
若a1应该在a2前面,则返回true。否则返回false;
};
}
struct Stu
{
string name;
int grades;
};
//自定义排序规则,以分数从小到大对学生进行排序
struct Rule{
bool operator()(const Stu & a1,const Stu &a2)const
{
if(a1.grades<a2.grades) return true;
}
};
//也可以直接写函数
/*
bool Rule(const Stu & a1,const Stu &a2)
{
if(a1.grades<a2.grades) return true;
}
调用方式:sort(stu,stu+4,Rule);Rule后面不加括号了
*/
int main()
{
Stu stu[4]={
{
因篇幅问题不能全部显示,请点此查看更多更全内容