<spreadsort
>
проверяет, является ли предоставленный тип данных целым числом, литейным поплавком, строкой или струной.
- Если тип данных является целым числом, используется<
integer_sort
>
.
- Если тип данных является поплавком, используется<
float_sort
>
.
- Если тип данных представляет собой строку или строку,<
string_sort
>
используется.
- Сортировка других типов данных требует выбора между<
integer_sort
>
,<float_sort
>
и<string_sort
>
напрямую, поскольку<spreadsort
>
не будет принимать типы, которые не имеют соответствующих признаков типа.
Предусмотрены варианты перегрузки, позволяющие использовать определяемые пользователем функторы правого смещения и функторы сравнения.
Каждая функция оптимизирована для набора аргументов; функторы по умолчанию не предоставляются, чтобы избежать риска любого снижения производительности.
См.Перегрузкараздел.
<spreadsort
>
функция обеспечивает обертку, которая называет самый быстрый алгоритм сортировки, доступный для типа данных, что позволяет быстрее генерическое программирование.
См.примерпапка для всех примеров.
См.sample.cppдля простого рабочего примера.
Пример сортировки 64-битных целых чисел см.int64.cpp.
Этот пример устанавливает тип элемента вектора на 64-битное целое число.
#define DATA_TYPE boost::int64_t
Называется The Type
boost::sort::spreadsort::spreadsort(array.begin(), array.end());
Для простого примера сортировки<float
>,
vector<float> vec;
vec.push_back(1.0);
vec.push_back(2.3);
vec.push_back(1.3);
...
spreadsort(vec.begin(), vec.end());
См. такжеfloatsample.cpp, который проверяет аномальные значения.