代码之家  ›  专栏  ›  技术社区  ›  ontherocks

以不同的方式填充地图

  •  -3
  • ontherocks  · 技术社区  · 7 年前

    typedef unordered_map<std::string, SomeSet> StringToSetMap;
    
    StringToSetMap myMap;
    
    std::string str ("hello");
    
    SomeSet &mySet = myMap[str]; //Map populates here
    

    “SomeSet”是一个排字无序集。

    据我所知,地图只能以上述方式填充 here

    1 回复  |  直到 7 年前
        1
  •  1
  •   scohe001    7 年前

    See the docs 对于所讨论的下标运算符。注意,运算符的描述是它。。。

    如果该键不存在,则执行插入

    另请注意:

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

    “hello”不是地图中的键,因此它会被插入并引用一个新的 SomeSet 对象返回给您。

    (注意:键可以是move-constructed,也可以是copy-constructed,但无论哪种方式,值都始终是默认构造的。请确保您具有的默认构造函数 !)