添加到包含向量值的无序映射

Adding into unordered map containing vector value

假设我有一个定义如下的无序映射:

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

如果我要在地图中添加一个元素,我将不得不做如下事情:

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

但是我只想在向量中添加一个元素,我该怎么办?在再次插入之前,我是否必须拉出矢量并添加到其中?执行此操作的最佳方法是什么?

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

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

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

也避免使用map作为变量名,这与std::map

冲突