Я нахожусь в ситуации, когда мне нужно получить доступ к std :: map по позиции.Поскольку std::advance(iter, position)
медленный, я хочу добавить вторую структуру данных для ускорения этой операции.
Моя идея: поддерживать вектор для каждой пары ключ-значение на карте.Затем получите доступ к вектору по позиции, vector[position]->second
.
. При стирании / вставке нового элемента мне, очевидно, придется удалить итератор из вектора.Но, кроме того, свойства std :: map, сохраняющие итератор, кажутся достаточными.
Вопрос: Это хорошая идея?
Альтернатива: Поддерживать вектор map::keys
.Затем получите доступ к вектору по положению и используйте ключ для поиска значения на карте map[vector[position]]
.Это умнее?