Inplus: Как это работает

Приведенные таблицы показывают, каким требованиям должен удовлетворять интерфейс контейнера, чтобы его можно было использовать вместе с алгоритмами из стандартной библиотеки С++.

Некоторые рекомендации по использованию контейнеров

Критерий
Рекомендация

Возможность вставки нового элемента на произвольную позицию контейнера

Если нужна, выбирайте последовательный контейнер; ассоциативные контейнеры не подходят.

быстрая вставка

list

Структура памяти контейнера должна соответствовать правилам языка C

Только vector

критична скорость поиска

Рассмотрите сортированные векторы и ассоциативные контейнеры

Общие рекомендации по использованию STL

  • Не пытайтесь писать контейнерно-независимый код, так вы себя ограничиваете в возможностях

  • Реализуйте быстрое и корректное копирование объектов в контейнерах

  • Старайтесь не использовать итераторы повторно (особенно после удаления элементов из контейнера)

  • Используйте алгоритмы вместо циклов

  • Всегда включайте только нужные заголовки - это позволит сократить время компиляции

  • Научитесь читать сообщения компилятора

  • Обязательно прочтите следующие книги:

    • Герб Саттер, Андрей Александреску, Стандарты программирования на С++

    • Герб Саттер, Решение сложных задач на С++

Реализация класса array, совместимого со стандартной библиотекой С++

Подобная реализация существует в С++, начиная со стандарта С++11.

Last updated