c – 插入地图的两种方式之间的差异

我被问到两种方法将记录插入地图,

mymap["foo"] = 123;

mymap.insert("foo", 123);

除了语法之外,这两者之间有什么区别吗?

除了蒂莫的出色回答 –

如果“foo”中没有元素,则第一个将默认在“foo”位置构造一个值,然后使用对默认构造的“foo”值的引用,将123分配给该位置.

干得好

mymap["foo"]

将导致值默认构造并放置在“foo”位置.这样做时要小心

int value = mymap["foo"]

因为它会起作用,即使你从未明确指定或插入foo

相关文章
相关标签/搜索