2012-10-30 40 views

回答

2

這是一個參考,否則這是行不通的:

map[key] = value; 
2

按照documentation,這似乎是一個參考。

mapped_type& operator[](key_type const& k); 
1

Boost documentation

mapped_type &操作符[](key_type的常量& K);

效果:
如果容器沒有包含與密鑰等效於k的元素,插入值的std ::對(k,mapped_type())

返回:
到x.second其中x是所述元件已經在所述容器,或用等效鍵新插入的元素爲k

參考拋出:
如果通過除哈希函數以外的操作拋出異常,則該函數不起作用。

備註: 可以使迭代器無效,但前提是插入導致負載因數大於或等於最大負載因數。

指針和對元素的引用永遠不會失效。

0

訪問器運算符[]總是返回一個引用。如果map元素不存在,它將被創建。爲避免重複搜索,以下模式非常有用:

std::unordered_map<K, T> m = populate_me(); 

T & value = m[key]; // created if non-existent 

// use "value" rather than repeated "m[key]" 
相關問題