【问题标题】:Adding into unordered map containing vector value添加到包含向量值的无序映射中
【发布时间】:2015-02-28 23:00:01
【问题描述】:

假设我有一个这样定义的无序地图:

unordered_map<string, vector<Obj*>> map // I defined some Obj class

如果我要在地图中添加一个元素,我必须执行以下操作:

pair<string, vector<Obj*>> newEntry(myString, myVector);
map.insert(newEntry);

但我只想在向量中添加一个元素,我该怎么办?在再次插入之前,我是否必须拉出向量并添加到它?最好的方法是什么?

【问题讨论】:

    标签: c++ dictionary vector unordered-map


    【解决方案1】:

    您可以使用std::unordered_map::operator[] 如下:

    map[myString].push_back( new_object ); // new_obj is of type Obj*
    

    这将更新 myString 键的值,如果不存在,则插入新的键值。

    还要避免使用map作为变量名,这与std::map冲突

    【讨论】:

    • 是 myVector 还是 myString?我认为 myVector 是有效的。
    • @maregor 你说你已经在一个键中有一个vector,你想更新现有键的向量,对吧?您创建一对密钥为myString,值为myVector,因此我假设您的密钥为myString,如下示例
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    相关资源
    最近更新 更多