以不同的方式填充地图

时间:2017-10-13 16:06:34

标签: c++ c++11 unordered-map

这是填充地图的现有代码。

typedef unordered_map<std::string, SomeSet> StringToSetMap;

StringToSetMap myMap;

std::string str ("hello");

SomeSet &mySet = myMap[str]; //Map populates here

&#34; SomeSet&#34;是一个typedefed unordered_set。

据我所知,地图只能按照here

提及的方式填充

这是如何以这种方式填充地图的?

1 个答案:

答案 0 :(得分:1)

对于有问题的下标运算符,

See the docs。请注意,运算符的描述是......

  

返回对映射到等效于key的键的值的引用,   如果此类密钥尚不存在则执行插入

另请注意:

  

返回值

     

如果没有带键键的元素,则引用新元素的映射值   存在。否则引用现有元素的映射值   其密钥等同于密钥。

&#34;你好&#34;它不是地图中的关键字,因此会插入并返回对闪亮的新SomeSet对象的引用。

(注意:键是移动构造的或复制构造的,但无论哪种方式,值都是默认构造的。确保你有SomeSet的默认构造函数!)