我被问到两种方法将记录插入地图,
mymap["foo"] = 123;
mymap.insert("foo", 123);
Run Code Online (Sandbox Code Playgroud)
除了语法之外,这两者之间有什么区别吗?
除了蒂莫的出色回答 -
如果"foo"中没有元素,则第一个将默认在"foo"位置构造一个值,然后使用对默认构造的"foo"值的引用,将123分配给该位置.
干得好
mymap["foo"]
Run Code Online (Sandbox Code Playgroud)
将导致值默认构造并放置在"foo"位置.这样做时要小心
int value = mymap["foo"]
Run Code Online (Sandbox Code Playgroud)
因为它会起作用,即使你从未明确指定或插入foo