CPPPROGLIB Telegram 5770
🧱 Для чего нужны плоские контейнеры и как их использовать

💡 В C++23 появились долгожданные «плоские» контейнеры: flat_set, flat_map, flat_multiset и flat_multimap — адаптеры, которые используют обычные векторы вместо деревьев.

❗️ Ключевые особенности:

• поиск O(log N) как в обычном set, но быстрее на практике
• итерация в разы быстрее классических контейнеров
• потребление памяти меньше на сотни процентов
• вставка и удаление катастрофически медленные O(N)

Основная идея — хранить данные в отсортированном векторе и использовать бинарный поиск. std::flat_map даже хранит ключи и значения в отдельных контейнерах для лучшей производительности.

Идеально подходят для сценариев «заполнил один раз — читаю много раз». Особенно эффективны при работе с миллионами элементов и компактными ключами.

⚠️ Не используйте их, если планируете частые вставки и удаления — в таких случаях классические std::set/map или unordered-контейнеры будут эффективнее.

🔜Статья

Библиотека C/C++ разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112



tgoop.com/cppproglib/5770
Create:
Last Update:

🧱 Для чего нужны плоские контейнеры и как их использовать

💡 В C++23 появились долгожданные «плоские» контейнеры: flat_set, flat_map, flat_multiset и flat_multimap — адаптеры, которые используют обычные векторы вместо деревьев.

❗️ Ключевые особенности:

• поиск O(log N) как в обычном set, но быстрее на практике
• итерация в разы быстрее классических контейнеров
• потребление памяти меньше на сотни процентов
• вставка и удаление катастрофически медленные O(N)

Основная идея — хранить данные в отсортированном векторе и использовать бинарный поиск. std::flat_map даже хранит ключи и значения в отдельных контейнерах для лучшей производительности.

Идеально подходят для сценариев «заполнил один раз — читаю много раз». Особенно эффективны при работе с миллионами элементов и компактными ключами.

⚠️ Не используйте их, если планируете частые вставки и удаления — в таких случаях классические std::set/map или unordered-контейнеры будут эффективнее.

🔜Статья

Библиотека C/C++ разработчика

BY Библиотека C/C++ разработчика | cpp, boost, qt




Share with your friend now:
tgoop.com/cppproglib/5770

View MORE
Open in Telegram


Telegram News

Date: |

Matt Hussey, editorial director of NEAR Protocol (and former editor-in-chief of Decrypt) responded to the news of the Telegram group with “#meIRL.” The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be: The imprisonment came as Telegram said it was "surprised" by claims that privacy commissioner Ada Chung Lai-ling is seeking to block the messaging app due to doxxing content targeting police and politicians. A vandalised bank during the 2019 protest. File photo: May James/HKFP. 3How to create a Telegram channel?
from us


Telegram Библиотека C/C++ разработчика | cpp, boost, qt
FROM American