我有一个无序的地图,其中包含密钥中的枚举和内容中的shared_ptr。
当我初始化我的地图时,我使用这样的emplace:
this->_menu.emplace(BINDINGS, std::shared_ptr<AMenu>(new BindingMenu("Player 1"));
但我想知道我是否可以用另一个BindingMenu对象替换(在同一个地方):
std::shared_ptr<AMenu>(new BindingMenu("Player 2")
谢谢
答案 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[]/