Я ищу C++ ассоциативный тип контейнера карты, который я могу выполнить, несколько включают поиски. Карта должна иметь постоянные поиски времени, но я не забочусь, заказана ли она или не заказана. Это просто должно быть быстро.
Например, я хочу сохранить набор std::vector
объекты в карте с int
и a void*
как ключи поиска. Оба int
и void*
должен соответствовать, чтобы мой вектор был получен.
Такой контейнер уже существует? Или я оказываюсь перед необходимостью прокручивать свое собственное? Если так, как я мог реализовать его? Я пытался сохранить a boost::unordered_map
в другом boost::unordered_map
, но я не имел никакого успеха с этим методом, еще. Возможно, я продолжу Pershing этот метод, если не будет никакого более простого пути.
Постоянный поиск требует хэш-карты. Вы можете использовать boost :: unordered_map (или tr1). Ключом будет комбинированный хэш указателя int и void.
Если вы не хотите использовать ускорение, вы можете попробовать map
. Однако поиск выполняется O (журнал (размер карты)).
Вы можете использовать boost :: multi_index .
(хотя я думаю, что на самом деле вам нужно использовать тип, содержащий как void *, так и целое число, в качестве ключа к вашей карте, и просто сравнить необработанные данные для обоих, чтобы предоставить оператор сравнения для map)