替换无序映射中的元素

时间:2017-06-01 12:14:30

标签: c++

我有一个无序的地图,其中包含密钥中的枚举和内容中的shared_ptr。

当我初始化我的地图时,我使用这样的emplace:

this->_menu.emplace(BINDINGS, std::shared_ptr<AMenu>(new BindingMenu("Player 1"));

但我想知道我是否可以用另一个BindingMenu对象替换(在同一个地方):

std::shared_ptr<AMenu>(new BindingMenu("Player 2")

谢谢

1 个答案:

答案 0 :(得分:0)

正如@ Jarod42所提到的,您可以使用operator []

访问地图中的元素
this->_menu[BINDINGS] = std::shared_ptr<AMenu>(new BindingMenu("Player 2"));

如果您尝试访问的元素尚不存在,则会创建该元素。

此处提供更多信息http://www.cplusplus.com/reference/unordered_map/unordered_map/operator[]/