C++里面的sort()函数是不是不能对double类型的元素排序?

RT

sort可以对任何类型进行排序。


sort排序的要求被排序的数据的元素要么能通过<比较,要么由调用方提供比较方法。具体一点说就是:

    有两个元素a和b,可以通过a < b的方式判断两个元素的先后顺序(double显然满足)。如果a和b原本不能用于<,就需要重载operator <;

    如果a和b不能通过a < b的方式比较,或者排序的需求并不是简单的增序排列。那么要给sort提供第三个参数,暂时称它为f,可以通过f(a, b)的方式确定a和b的顺序。比如下面代码对一个double数组按元素的平方进行降序排列。

#include <algorithm>

using namespace std;

int main()
{
 double list[] = { 1., -1., 0.5, -0.25, 100.12 };

 sort(list, list + 5, [](double a, double b) { return a * a > b * b; });
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-01-15
// STL 中sort是可以对double进行排序的。
// 如:
#include <iostream>
#include <algorithm>
using namespace std;

int main(){
    double coll[]={1.5,59.4,3.8,10.2};
sort(coll,coll+4);
copy(coll,coll+4,
 ostream_iterator<double>(cout," "));
cout<<endl;
    return 1;
}

本回答被提问者采纳
第2个回答  2014-02-27
就算不行,不妨碍你自己写一个呗。
第3个回答  2014-02-27
c语言才上两节课
第4个回答  2014-02-27
可以
相似回答