У меня есть массив (4) числа с плавающей точкой и потребность отсортировать массив в порядке убывания. Я довольно плохо знаком с C++ и задавался вопросом, каков будет лучший способ сделать это?
Спасибо.
Использовать std :: sort
с компаратором не по умолчанию:
float data[SIZE];
data[0] = ...;
...
std::sort(data, data + size, std::greater<float>());
Предполагая следующее:
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 для начинающих; тебе решать.