可以在Map中将两个键值相同

pay*_*s4u 1 c++ linux boost stl map

我已经定义了一张地图

boost::unordered_map<"std::string,std::string">m_mapABC ;
Run Code Online (Sandbox Code Playgroud)

我将值存储在其中就像m_mapABC [strValue1] = strValue2;

并假设我将10个条目存储到地图中.在这种情况下,可以使用相同的键值来存储10个不同的值.或者每次都会覆盖它...我想它会.
在那种情况下使用 std::pair将有助于我猜.

std::map<"std::string, std::pair<"std::string", bool>>myMap2
Run Code Online (Sandbox Code Playgroud)

std::pair 可以有2个键值相等(我猜我是对的)...在每种情况下bool值是多少,在第一种情况下它是TRUE,第二次是FALSE还是反之?

我也听说过std::tuple或者boost::tuple单个Key可用于存储不同值的位置.

我不太清楚如何迭代它们......我需要帮助

nha*_*tdh 5

你可能想要multimap而不是map.


Jer*_*fin 5

如果要将多个值与单个键关联,请使用std::multimap(或std::unordered_multimap)代替std::map.

在某些情况下,有一个std::map<key_type, std::vector<mapped_type> >相反的意义(个人,我经常发现这是更可取的).