Inplus: Как это работает
Приведенные таблицы показывают, каким требованиям должен удовлетворять интерфейс контейнера, чтобы его можно было использовать вместе с алгоритмами из стандартной библиотеки С++.
Некоторые рекомендации по использованию контейнеров
Критерий | Рекомендация |
---|---|
Возможность вставки нового элемента на произвольную позицию контейнера | Если нужна, выбирайте последовательный контейнер; ассоциативные контейнеры не подходят. |
быстрая вставка | list |
Структура памяти контейнера должна соответствовать правилам языка C | Только vector |
критична скорость поиска | Рассмотрите сортированные векторы и ассоциативные контейнеры |
Общие рекомендации по использованию STL
Не пытайтесь писать контейнерно-независимый код, так вы себя ограничиваете в возможностях
Реализуйте быстрое и корректное копирование объектов в контейнерах
Старайтесь не использовать итераторы повторно (особенно после удаления элементов из контейнера)
Используйте алгоритмы вместо циклов
Всегда включайте только нужные заголовки - это позволит сократить время компиляции
Научитесь читать сообщения компилятора
Обязательно прочтите следующие книги:
Герб Саттер, Андрей Александреску, Стандарты программирования на С++
Герб Саттер, Решение сложных задач на С++
Реализация класса array, совместимого со стандартной библиотекой С++
Подобная реализация существует в С++, начиная со стандарта С++11.
Last updated