Библиотека контейнеров Boost Multi-index предоставляет шаблон класса под названием<multi_index_container>, который позволяет создавать контейнеры, поддерживающие один или несколько индексовс различной сортировкой и семантикой доступа. Индексы обеспечивают интерфейсы, аналогичные интерфейсам контейнеров STL, что делает их использование знакомым. Концепция многоиндексирования по одному и тому же набору элементов заимствована из терминологии реляционных баз данных и позволяет задавать спецификации сложных структур данных в духе многоиндексированных реляционных таблиц, где простых наборов и карт недостаточно. Предоставляется широкий выбор индексов, смоделированных по аналогии с контейнерами STL, такими как<std::set>,<std::list>и<std::unordered_set>.
Повышаю. MultiIndex имеет дополнительные функции, такие как поиск подобъектов, запрос диапазона, обновление элементов на месте и вычисление рангов, что делает его удобной заменой для<std::set>и<set::multiset>, даже когда нет необходимости в многоиндексирующих возможностях.
Универсальная природа Boost. MultiIndex обеспечивает спецификацию широкого спектра различных структур данных. Ниже приведены возможные примеры использования, разработанные в документации: