簡體   English   中英

在C ++中的不存在鍵上調用方法unordered_map

[英]Calling a method on a non-existing key within a c++ unordered_map

快速提問。 如果我嘗試致電,確切的行為是什么:

std::unordered_map<int, std::unordered_map<int, double>> myUMap;
myUMap[5].insert(......);

......是一對,並假設myUMap [5]還不存在?

我聽說,嘗試使用不存在的鍵來訪問unordered_map,這樣在無序圖中創建該鍵,但是在這種情況下,如果myUMap [5]不存在,該插入操作是否可以正確運行?可以,在其中更新myUMap [5]的地圖嗎?

該行在內部被解析為:

(myUMap.operator[](5)).insert(......);

評估順序從左到右。

因此,您首先在myUMap上調用operator[](5) ,如果地圖中尚不存在該元素,則會創建一個元素。 因此,最終插入到已創建的元素中。

暫無
暫無

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

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