使用[]和insert()插入std :: unordered_map有什么区别

时间:2016-05-06 20:22:03

标签: c++ unordered-map

我想将autocomplete="username"添加到我的应用中,以将值存储为unordered_map对。我想在函数中添加元素到map,返回指向这个对象的指针,做一些逻辑然后检索这个值。

不幸的是我无法按计划行事,因为看起来我的参考文件在某种程度上失去联系。这就是当前插入的方式:

<string,object>

正如您所看到的,我正在使用operator[],但是稍后我尝试使用此地图的对象时,它看起来像是重新创建的,我在其上所做的一切都没有效果

我一直在考虑insert,但我不确定差异。运营商的好处是,如果对象存在与否并不重要我仍然可以参考它。但显然我对这个目标无能为力。那么在这种情况下更好的是什么?

1 个答案:

答案 0 :(得分:3)

  

看起来我的引用正在以某种方式失去连接

您没有使用参考。你正在制作副本:

Game.includes(:manager, :votes).joins("LEFT OUTER JOIN votes ON votes.voter_id = #{userId} AND votes.game_id = games.id").group("games.id").select("games.*, count(votes.id) > 0 as voted_on_by_user")

如果您想使用引用,EdgeS edge = edges[to->name]; 应该有edge类型。