Существует ли стандартная структура или библиотека в C ++ (или C ++ 11), которая похожа на set
, но может иметь более одного key
.
то есть набор std :: pair, который можно быстро найти с помощью a
или b
.
Так что вы можете сделать что-то вроде этого:
std::string a = "hello";
std::string b = "world";
x.insert(a, b);
x.get<1>("hello") => std::pair("hello", "world"); // (fast lookup)
x.get<2>("world") => std::pair("hello", "world"); // (fast lookup)
В основном как таблица базы данных с двумя индексами.
Я бы не стал изобретать колесо, если что-то уже существует.
Простой способ объединить существующие контейнеры, чтобы сделать что-то сэта функциональность также будет полезна.