отсортируйте массив плаваний в C++

У меня есть массив (4) числа с плавающей точкой и потребность отсортировать массив в порядке убывания. Я довольно плохо знаком с C++ и задавался вопросом, каков будет лучший способ сделать это?

Спасибо.

5
задан minimalpop 24 May 2010 в 22:50
поделиться

2 ответа

Использовать std :: sort с компаратором не по умолчанию:

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

std::sort(data, data + size, std::greater<float>());
20
ответ дан 18 December 2019 в 07:28
поделиться

Предполагая следующее:

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 для начинающих; тебе решать.

1
ответ дан 18 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: