Шаг 191.
Библиотека STL.
Контейнеры STL. Рекомендации по выбору контейнера

    На этом шаге мы приведем некоторые рекомендации по выбору контейнера.

    Стандартная библиотека C++ содержит разные типы контейнеров, обладающие разными возможностями. Возникает вопрос: когда использовать тот или иной тип контейнера? В таблице 1 приводятся некоторые рекомендации. Однако эти общие утверждения не всегда согласуются с реальностью. Например, при малом количестве элементов фактор сложности можно не учитывать, потому что обработка малого количества элементов с линейной сложностью происходит быстрее, чем обработка большого количества элементов с логарифмической сложностью.

    В дополнение к таблице далее приводится еще несколько полезных практических рекомендаций.

    Если нужно сортировать объекты по двум разным критериям, возникают проблемы. Допустим, вы хотите хранить объекты в порядке, указанном пользователем, но при этом предоставить средства поиска по другому критерию; как и при работе с базами данных, операции по двум и более критериям должны выполняться достаточно быстро. Вероятно, в такой ситуации стоит воспользоваться двумя множествами или отображениями, совместно использующими общие объекты с разными критериями сортировки. С другой стороны, хранение объектов в двух коллекциях - особая тема, которая рассматривается на предыдущем шаге.

    Автоматическая сортировка ассоциативных контейнеров вовсе не означает, что эти контейнеры работают более эффективно там, где сортировка необходима. Дело в том, что ассоциативный контейнер проводит сортировку при каждой вставке нового элемента. Часто более эффективным оказывается другое решение - использование последовательного контейнера и сортировка всех элементов после вставки одним или несколькими алгоритмами сортировки.

    На следующем шаге мы закончим рассмотрение этого вопроса.




Предыдущий шаг Содержание Следующий шаг