Я построил карту, в которой ключом является вектор: map<vector<KeyT>, T>
, который я сейчас пытаюсь оптимизировать.
Эксперимент с вложенными вручную картами map<vector<KeyT>, map<KeyT,T> >
, где первый ключ - исходный вектор минус последний элемент, а второй ключ - последний элемент, показывает разумное ускорение.
Теперь мне интересно, существует ли полустандартная реализация (например, boost или аналогичная) ассоциативного контейнера, в котором векторные ключи реализованы в виде такой иерархической структуры контейнеров.
В идеале это позволило бы создать столько слоев, сколько имеется элементов в векторе ключа, при сохранении единого синтаксиса для векторов разной длины.