Здравствуйте, so5team, Вы писали:
S>Да запросто если идет большая серия проверок на наличие ключа в map-е. S>Например, у нас flat_map<int, std::array<std::byte, 64>>. И нам нужно пробежаться по 100500 значениям ключей, чтобы проверить, какие из них уже есть в словаре. S>Когда ключи лежат в отдельном векторе, то для кэша процессора такая пробежка будет более щадящей, чем когда и ключ, и значение, лежат парами в одном общем векторе.
Я вот смотрю, flat_map заточена на раздельную работу с двумя контейнерами. И такое действительно иногда полезно. Типа, мы строим-строим, инкапсулируем, а по итогу имеем возможность раздать коллекцию значений отдельно от ключей без дополнительных накладных расходов. Типа, есть класс с инкапсулированной мапой, который умеет что-то там акккумулировать, а наружу выставляет константный аксессор, возвращающий константную ссылку на коллекцию значений.
--
Справедливость выше закона. А человечность выше справедливости.