Итак, у меня есть неупорядоченная карта, и для каждой клавиши я хочу сохранить два уникальных поплавка. Эти поплавки представляют собой совокупные значения во времени того, что я имитирую, и, таким образом, по мере того, как мой код прогрессирует, значения существующих ключей могут быть добавлены и могут быть созданы новые ключи.Неупорядоченная карта с несколькими значениями
Раньше я отслеживал только одно значение, поэтому неупорядоченная карта была простым решением. Я не уверен, как сохранить два разных значения с одним ключом?
- Использование
unordered_map<int,vector<float> >
было моей первой мыслью, но затем добавление к существующим значениям не так просто. Кажется, я должен определить, существует ли ключ в первую очередь, а затем либо добавить новый векторный компонент к существующему, либо установить ключ, равный новому вектору. - Я посмотрел на unordered_multimap. Хотя я не очень хорошо разбираюсь в том, как это работает, он, похоже, не показал хороший способ отслеживать, какое из значений является тем, что, учитывая, что у меня есть два значения, которые я хочу сохранить отдельно и уметь определять который есть какой.
Есть ли другой способ этого?
Использование unordered_map<int,pair<float,float> >
было простым решением.
Что вы подразумеваете под "определять, что есть"? Вам нужно знать порядок, который они вставляли в карту? –
Если я правильно понимаю, что случилось с 'unordered_map>'. Это очень хорошо отображает «для каждого ключа, который я хочу сохранить двумя уникальными поплавками». Пара позволяет вам отслеживать поплавки с 'first' и' second'. Имейте в виду, что вы должны быть уверены, что вы должны хранить два и только два поплавка. Это решение не развивается. –
JBL
Ответ, вероятно, 'unordered_multimap', вы можете уточнить, как ему не хватает« отличного ощущения »и« хорошего пути »? –