插入地图的两种方法之间的差异

| 我被问到将记录插入地图的两种方法,
mymap[\"foo\"] = 123;

mymap.insert(\"foo\", 123);
那么这两个语法之间有什么区别吗?
已邀请:
除了蒂莫的出色答案之外, 如果\“ foo \”处不存在任何元素,则第一个将首先默认在\“ foo \”位置构造一个值,然后使用对默认构造的\“ foo \”值的引用,将123分配给该位置。 只是做
mymap[\"foo\"]
将导致默认构造一个值并将其放在\“ foo \”位置。所以做的时候要小心
int value = mymap[\"foo\"]
因为它将起作用,即使您从未在foo中显式分配或插入它
如果存在键“ foo”,则通过
[]
的第一个选项将覆盖用键“ foo”存储的值,而如果键已经存在,则ѭ4fail将无法插入数据并指示成功或失败。它的返回值。

要回复问题请先登录注册