在C++中对浮点数数组进行排序

7

我有一个由4个浮点数组成的数组,需要按降序对数组进行排序。我对c++还很陌生,想知道最好的方法是什么?

谢谢。

2个回答

23

使用非默认比较器与std::sort

float data[SIZE];
data[0] = ...;
...

std::sort(data, data + size, std::greater<float>());

4
对于初学者来说,STL的std::sort函数定义在<algorithm>头文件中。当然,如果这是一个作业练习,你应该自己实现一个sort函数。 - johnsyweb

0
假设以下情况:
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的一步;这取决于您。


你错过了问题中的“按降序排列”的部分。 - pmr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接