簡體   English   中英

插入地圖的兩種方式之間的差異

[英]difference between two ways to insert into map

我被問到兩種方法將記錄插入地圖,

mymap["foo"] = 123;

mymap.insert("foo", 123);

除了語法之外,這兩者之間有什么區別嗎?

如果密鑰“foo”存在,則通過[]的第一個選項將覆蓋用鍵“foo”存儲的值,而如果密鑰已經存在則insert將無法插入數據,並且將指示其返回值成功或失敗。

除了蒂莫的出色回答 -

如果“foo”中沒有元素,則第一個將默認在“foo”位置構造一個值,然后使用對默認構造的“foo”值的引用,將123分配給該位置。

干得好

mymap["foo"]

將導致值默認構造並放置在“foo”位置。 這樣做時要小心

int value = mymap["foo"]

因為它會起作用, 即使你從未明確指定或插入foo

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM