Библиотека C/C++ разработчика | cpp, boost, qt
19.8K subscribers
1.92K photos
58 videos
16 files
4.16K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
Download Telegram
🔥 std::flat_map в C++23 — быстрее std::map в 3-5 раз?

Представьте: вы профилируете код и видите, что std::map тормозит. Cache misses, фрагментация памяти, медленный поиск.


C++23 представляет std::flat_map и std::flat_set — адаптеры контейнеров, которые хранят элементы в непрерывной памяти. Вместо узлов дерева — два плоских массива (ключи + значения).

#include <flat_map>

std::flat_map<int, std::string> cache{
{1, "one"}, {2, "two"}, {3, "three"}
};

// Все элементы рядом в памяти — процессор доволен
auto it = cache.find(2); // Бинарный поиск по упорядоченному массиву


❗️ Главные преимущества:

• Меньше cache misses → быстрее на реальных данных
• Меньше аллокаций памяти
• Лучше для read-heavy сценариев

✏️ Когда использовать? Если у вас много поисков и мало изменений — flat_map будет более производительным чем классический map.

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

#константная_правильность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🥰4