我定义了一个Map
boost::unordered_map<"std::string,std::string">m_mapABC ;
我在里面存储值比如m_mapABC[strValue 1]= strValue 2;
假设我在Map中存储了10个条目。在这种情况下,可以使用相同的键值来存储10个不同的值吗?或者每次都会被重写...我猜会的。
在这种情况下,使用std::pair
会有所帮助,我猜。
std::map<"std::string, std::pair<"std::string", bool>>myMap2
std::pair
可以有2个相等的键值(我猜我是对的)...每种情况下的bool值是什么,第一次是TRUE,第二次是FALSE,还是反之亦然?.
我还听说过std::tuple
或boost::tuple
,其中单个Key可以用于存储不同的值。
我不是很清楚如何迭代它们。。。我需要帮助
3条答案
按热度按时间juud5qan1#
您可能需要
multimap
而不是map
。5rgfhyps2#
如果要将多个值与单个键关联,请使用
std::multimap
(或std::unordered_multimap
)而不是std::map
。在某些情况下,使用
std::map<key_type, std::vector<mapped_type> >
是有意义的(就我个人而言,我经常觉得这样更好)。0dxa2lsx3#
如果你想用同一个键存储多个项目,你应该使用
multimap
(也适用于unordered_
变体)。以下内容应该有效:
你的multimap应该包含10个带有“hello world”键的条目和10个不同的值。