Чтобы отобразить группу целочисленных переменных к значениям (сказать, что я a1, a2, a3, a4, a5, a6
для определения значения v
; это карта как map<tuple<int, int, int, int, int, int>,VALUE_TYPE>
или map<struct{int, int, int, int, int, int},VALUE_TYPE>
), мы можем использоватьC++ эффективный способ отображения группы целочисленных переменных к значениям
- строку, построенную из целых чисел в качестве ключа
- кортежа как ключевая
- структуры или класса в качестве ключа
- и так далее ...
Мне очень интересно узнать о выполнении этих методов. В моей ситуации,
- меньше вставки, более запрос
- широкий диапазон, но скудны распределение целочисленных ключей
- время меня беспокоит более, памяти меньше
- Карта доступа является самым потребляя часть, так что даже 10 % вопросы ускорения
Вопрос в том, какой способ лучше работает в моей ситуации?
Если выбрана клавиша struct или class, есть ли какой-либо трюк, чтобы сделать компаратор более эффективным?
Действительно ли неупорядоченный_мап лучше подходит для этой ситуации? Как мне рассчитать хэш ключей?
Буду признателен за любые предложения или комментарии по решениям. Также приветствуется обсуждение более общей ситуации. Заранее спасибо.
Переменные переменных в значения? Просто сохраните значения в них. – StoryTeller
std :: map может отображать целые числа в значения. Почему вы рассматриваете строки, кортежи или пользовательские классы? Поместите целые числа на карту. – nvoigt
Ключ - это целые числа, такие как [x, y, z], если использовать 3 переменные для определения значения. Я отредактировал вопрос, чтобы устранить двусмысленность. @ Nvoigt @storyteller – yuiyin