map有一個構造函數:
map<k, v> m(b, e);
《C++ Primer》解釋為:“創建 map 類型的對象 m, 存儲迭代器 b 和 e 標記的范圍內所有元素的副本,元素的類型必須能轉換為 pair<const k, v>”,這個構造函數理解起來沒有另外兩個容易:
1 map<k, v> m; 2 map<k, v> m(m2);
在接下來的閱讀中找到了學習map的關鍵點,那就是:鍵類型、值類型和value_type,value_type即“元素類型”。
以數組為例:
int a[5];
它的value_type即元素的類型就是int。
回頭來看:
map<string, int> word_count;
map的“元素類型”就復雜一點,是“存儲元素的鍵以及值的 pair 類型,而且鍵為 const”,以word_count為例,它的value_type是pair<const string, int>,即如果map對象有一個關聯的迭代器,對迭代器進行解引用得到的是“pair<const string, int>”類型的元素,理解了這點,map相關的構造函數及給map添加元素等知識點就不難理解。
?
?