сортировать массив с плавающей точкой в ​​C ++ - PullRequest
5 голосов
/ 25 мая 2010

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

Спасибо.

Ответы [ 2 ]

19 голосов
/ 25 мая 2010

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

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

std::sort(data, data + size, std::greater<float>());
1 голос
/ 25 мая 2010

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

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 начального уровня; вам решать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...