我有一个(4)浮点数的数组,需要按降序对数组进行排序。我对c ++很陌生,并且想知道最好的方法是什么?
感谢。
答案 0 :(得分:19)
将std::sort
与非默认比较器一起使用:
float data[SIZE];
data[0] = ...;
...
std::sort(data, data + size, std::greater<float>());
答案 1 :(得分:1)
假设如下:
float my_array[4];
你可以这样排序:
#include <algorithm>
// ... in your code somewhere
float* first(&my_array[0]);
float* last(first + 4);
std::sort(first, last);
请注意,第二个参数(last
)指向过去 4元素数组的末尾;这是将数组末尾传递给STL算法的正确方法。然后,您可以致电:
std::reverse(first, last);
反转数组的内容。您也可以为sort
例程编写自定义比较器,但我认为这比初级级STL高出一步;这取决于你。