添加到包含向量值的无序映射
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
冲突
假设我有一个定义如下的无序映射:
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