Структура данных для нескольких ключей, имеющих одинаковое значение в C

#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. Поскольку тип значения мал, косвенное обращение не дает выигрыша. И я не вижу оптимизации памяти.