对向量v排序也差不多,sort(v.begin(),v.end()); 排序的数据类型不局限于整数,只要是定义了小于运算的类型都可以,比如字符串类string。 如果是没有定义小于运算的数据类型,或者想改变排序的顺序,就要用到第三参数——比较函数。比较函数是一个自己定义的函数,返回值是bool型,它规定了什么样的关系才是“小于”。
sort在STL库中是排序函数,有时冒泡、选择等O(N^2)算法会超时时,我们可以使用STL中的快速排序O(N log N)完成排序 sort在<algorithm>库里面,原型如下: template < class RandomAccessIterator> void sort ( RandomAccessIterator first, RandomAccessIterator last ); template < class RandomAccessIterator,...
stuList.push_back(stu_6); sort(stuList.begin(),stuList.end(),stuCmpStr()); cout<<"使用结构体对象排序\n"; sort(stuList.begin(),stuList.end(),stuCmpFunc); for(deque<stuInfo>::iterator itr=stuList.begin();itr!=stuList.end();itr++) { cout<<(*itr).num<<endl; cout<<(*itr)...
稍微难一点的就是对结构体数组进行排序,此时,sort函数就有多种选择方式了,可以在结构体内重载操作符,写比较函数或者仿函数等都可以,例如: 1structnode{2intid,num;34//重载比较符5booloperator<(constnode&b)const{6if(num==b.num){7returnidb.num;10}11}a[6]={{1,3},{2,4},{3,1},{4,2},{5...
1.2 sort 中的比较函数 当你需要按照某种特定方式进行排序时,你需要给sort指定比较函数,否则程序会自动提供给你一个比较函数。 vector <int> vect;//...sort(vect.begin(), vect.end());//此时相当于调用sort(vect.begin(), vect.end(), less<int>() ); ...
临近各种算法比赛,相信很多人想笔者一样还总是记不住很多函数的用法,特此总结一下常用的STL标准库以及标准函数,希望能够有所帮助。 1. 输入输出 输入输出一般用两个标准库: #include<cstdio> #include<iostream> 一般笔者更习惯一些iostream库,iostream唯一比较常用但是难记的或许就是以下这句。
sort(v.begin(),v.end());//sort排序(默认升序排列)//设计排序比较函数 bool comp(const int& ...
定义比较函数,既可以通过定义比较运算符(如operator <),也可以直接定义函数(如compare)。 重载运算符之后,可以在sort函数中通过less或greater或less_equal等来调整升序还是降序,默认是升序。 另外,重载运算符后,函数bool operator < 就不要了,否则用g++编译出错。
mylist.sort(cmp); //mylist.sort(cmpp()); list <student>::iterator iter; iter=mylist.end(); iter--; cout<<(*iter).wage<<endl; return 0;} 2楼2010-11-04 11:49 回复 帅得有点坏 正式会员 5 list是不能使用sort算法的,list是不支持随机存取迭代器只能用自身的sort方法, 仿函数很优...