C3D Toolkit  Kernel - 105435, Vision - 121811.105435
Шаблон класса sorting_array< KeyType, _Pr >

Динамический контейнер для хранения элементов упорядоченного множества. Тип элемента контейнера должен иметь операторы порядка. Не стоит путать этот тип контейнера с set или map. Он вовсе не обязан всегда поддерживаться в отсортированном состоянии, а только тогда, когда это закажут (с кэшированием алгоритма сортировки). Гарантируется, что вектор отсортирован сразу после вызова функций get_sorted или sort. Константные методы, а также метод erase не нарушают сортировки.
. Подробнее...

#include <generic_utility.h>

+ Граф наследования:sorting_array< KeyType, _Pr >:

Подробное описание

template<class KeyType, class _Pr = std::less<KeyType>>
class sorting_array< KeyType, _Pr >

Динамический контейнер для хранения элементов упорядоченного множества. Тип элемента контейнера должен иметь операторы порядка. Не стоит путать этот тип контейнера с set или map. Он вовсе не обязан всегда поддерживаться в отсортированном состоянии, а только тогда, когда это закажут (с кэшированием алгоритма сортировки). Гарантируется, что вектор отсортирован сразу после вызова функций get_sorted или sort. Константные методы, а также метод erase не нарушают сортировки.
.

Про эффективность

Часто сортированный вектор оказывается более эффективным, чем std::map или std::set, особенно если добавление/удаление элементов массива осуществляется серийно и достаточно редко перемежаются, с запросами быстрого (бинарного) поиска элемента или его места по порядку. В отличие от map или set минимально дефрагментируется память и не требуется избыточной информации для хранения указателей (может занимать в 4 раза меньше памяти). Для быстрых запросов можно применять стандартные алгоритмы, такие как std::binary_search, std::lower_bound и т.п.


Объявления и описания членов класса находятся в файле: