今天又学到了一点新东西,拿出来大家分享一下,一下内容部分为摘抄。
本来在做一道TX14年的面试题,题中需要用到排序,本来想用自带的快排函数qsort(),突然想起STL应该有自己的排序算法,于是搜了一下,果然有,但是又不了解两者之间的好坏,大神知道记得说一声。(加头文件algorithm)
sort默认是升序排列。
vector<int> v1;
cout<<"v1=";
int a;
while(cin>>a)
{
v1.push_back(a);//ctrl+z结束输入
}
sort(v1.begin(),v1.end());
for(vector<int>::size_type i=0;i!=v1.size();i++)
{
cout<<v1[i]<<endl;
}
改写comp变为降序排列
bool comp(const int a,const int b)
{
return a>b;
}
为什么会这样呢?比较时sort函数根据comp函数进行判断输的大小,系统默认a<b时返回真,于是从小到大排,而我的comp函数设定为a>b时返回为真,那么最终得到的排序结果也相应的从小到大变成从大到小.