Структура данных C ++ похожа на std :: map с несколькими ключевыми уровнями - PullRequest
0 голосов
/ 10 июня 2018

Я хотел бы иметь структуру данных, аналогичную std::map, с несколькими ключевыми уровнями.Например, в этом my_map:

(‘a’ , “a1”) ->  “value1”
(‘a’ , “a2”) ->  “value2”
(‘b’ , “b1”) ->  “value3”
(‘b’ , “b2”) ->  “value4”

Значения ключей первого уровня - это символы: ['a' and 'b'], а уровни второго ключа - std::string ("a1" и т. Д.), А значения - строки.

Требования к API:

Добавление элементов с использованием двух ключевых значений.Получить элементы по первому ключу: my_map.at_first_level('a'), это должно вернуть карту вроде:

"a1" -> “value1”
"a2" -> “value2”

Реализована ли структура данных "многоуровневая карта" в какой-либо из библиотек C ++?

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Я бы предложил повысить MultiIndex с помощью composite_key https://www.boost.org/doc/libs/1_67_0/libs/multi_index/doc/tutorial/key_extraction.html

Вот недавний пример, который я привел, используя его:

0 голосов
/ 10 июня 2018

Рассматривали ли вы карту карт?

std::map<char, std::map<std::string, std::string> myMap;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...