Boost.ContainerБиблиотека реализует несколько известных контейнеров, в том числе STL-контейнеры. Цель библиотеки состоит в том, чтобы предлагать расширенные функции, не присутствующие в стандартных контейнерах, или предлагать новейшие стандартные функции для компиляторов, которые не соответствуют последнему стандарту C++.
Что же это такое?Контейнер
- Реализована семантика движения, включая эмуляцию движения для компиляторов pre-C++11.
- Присутствуют новые расширенные функции (например, вставка размещения, рекурсивные контейнеры).
- Контейнеры поддерживают государственные распределители и совместимы с.Boost.Interprocess(их можно безопасно разместить в общей памяти).
- Библиотека предлагает новые полезные контейнеры:
- <
flat_map
>,<flat_set
>,<flat_multimap
>и<flat_multiset
>: Замена стандартных ассоциативных контейнеров, но более дружественная к памяти и с более быстрым поиском.
- <
stable_vector
>: std::list и std:: векторный гибридный контейнер: вектороподобные итераторы случайного доступа и листоподобные итераторы стабильности в вставках и стираниях.
- <
slist
>: классическая престандартная реализация с единичным списком, предлагающая постоянное время<size()
>. Обратите внимание, что C++11<forward_list
>не имеет<size()
>.
Нет необходимости компилироватьBoost.Container, так как это библиотека только для заголовков, просто включите свой Каталог заголовков в компиляторе включает путь, за исключением случаев, когда вы используете:
Эти исключения реализованы в виде отдельно составленной библиотеки, поэтому в этих случаях необходимо установить двоичные файлы в месте, которое может быть найдено вашим линкером. Если вы будете следовать инструкциямBoost Getting Started, это уже сделано для вас.
Boost.Containerтребует достойной совместимости C++98. Некоторые компиляторы, которые, как известно, работают:
- Visual C++ >= 7.1.
- GCC >= 4.1.
- Intel C++ >= 9.0