#c
#c
Вопрос:
У меня есть несколько ключей, обозначающих одно и то же значение в std::unordered_map. Есть ли какая-либо структура данных в CPP, которую я могу использовать для экономии памяти? В данном случае, поскольку я снова и снова сохраняю одно и то же значение для другого ключа, моя память значительно увеличивается. Существует одно решение для создания кортежа ключей и хранения, но это повлияет на мое время выполнения при извлечении данных. Я видел пару похожих вопросов о переполнении стека, но не нашел правильного решения.
Псевдокод —
unordered_map<int,int> m ;
m[0] = 0;
m[1] = 0;
m[2] = 0;
cout<<m[2]<<endl;
Комментарии:
1. @Harry multimap — это совместное использование ключей, а не значений.
2.
std::unordered_map<Key, std::shared_ptr<Value>>
?3. Насколько велика ваша ценность? Как вы заполняете карту одинаковыми значениями?
4. Звучит как возможность хранить значения отдельно с ключами, просто указывающими на эти значения, вместо фактического сохранения значений.
5. Поскольку тип значения мал, косвенное обращение не дает выигрыша. И я не вижу оптимизации памяти.