Стандартная структура данных C ++ с несколькими «индексами» - PullRequest
2 голосов
/ 11 октября 2011

Существует ли стандартная структура или библиотека в 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)

В основном как таблица базы данных с двумя индексами.

Я бы не стал изобретать колесо, если что-то уже существует.

Простой способ объединить существующие контейнеры, чтобы сделать что-то сэта функциональность также будет полезна.

1 Ответ

10 голосов
/ 11 октября 2011

Я не уверен, каково ваше определение "стандартного C ++", но Boost.MultiIndex работает с любым стандартным компилятором C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...