如何解决插入地图的两种方法之间的差异
| 我被问到将记录插入地图的两种方法,mymap[\"foo\"] = 123;
mymap.insert(\"foo\",123);
那么这两个语法之间有什么区别吗?解决方法
除了蒂莫的出色答案之外,
如果\“ foo \”处不存在任何元素,则第一个将首先默认在\“ foo \”位置构造一个值,然后使用对默认构造的\“ foo \”值的引用,将123分配给该位置。
只是做
mymap[\"foo\"]
将导致默认构造一个值并将其放在\“ foo \”位置。所以做的时候要小心
int value = mymap[\"foo\"]
因为它将起作用,即使您从未在foo中显式分配或插入它,如果存在键“ foo”,则通过[]
的第一个选项将覆盖用键“ foo”存储的值,而如果键已经存在,则ѭ4fail将无法插入数据并指示成功或失败。它的返回值。版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。