Все заказанные контейнеры (std::set
, std::map
, std::multiset
, std::multimap
), ну, заказаны.Неупорядоченные контейнеры (std::list
, std::vector
, std::deque
) можно заказать, предоставив функцию сравнения с использованием std::sort
(vector, deque) или предоставив этот компаратор для метода-члена (list).
Все сводится к тому, что вам действительно нужно.Если вам нужно постоянно сортировать элементы, то отсортированный контейнер может быть более эффективным, чем модификация контейнера и обращение к нему.С другой стороны, если контейнер всегда сортируется, это не является обязательным требованием, но вы можете изменять элементы, тогда вы можете предпочесть вектор.Сортированные контейнеры поддерживают ключи как постоянные объекты, так как модификация ключей может нарушить инвариант сортировки.
В некоторых случаях контейнер необходимо сортировать постоянно, но он не изменяется после некоторых этапов инициализации.В этом случае несортированный контейнер, который сортируется после инициализации, может подойти.