std::map的insert和下标[]访问
生活随笔
收集整理的這篇文章主要介紹了
std::map的insert和下标[]访问
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
From: http://www.cnblogs.com/kex1n/archive/2011/11/16/2251520.html
?
在map中插入元素
改變map中的條目非常簡單,因為map類已經對[]操作符進行了重載
enumMap[1] = "One";
enumMap[2] = "Two";
.....
這樣非常直觀,但存在一個性能的問題。插入2時,先在enumMap中查找主鍵為2的項,沒發現,然后將一個新的對象插入enumMap,鍵是2,值是一個空字符串,插入完成后,將字符串賦為"Two"; 該方法會將每個值都賦為缺省值,然后再賦為顯示的值,如果元素是類對象,則開銷比較大。我們可以用以下方法來避免開銷:
enumMap.insert(map<int, CString> :: value_type(2, "Two"))
?
?
insert()方法:若插入的元素的鍵值已經存在于map中,那么插入就會失敗,不會修改元素的鍵對應的值;若鍵值在map中查不到,那么就會將該新元素加到map中去。
下標[key]方法:若插入元素的鍵值已經存在于map中,那么會更新該鍵值對應的值為新的元素的值;若該鍵值在map中找不到,那么就會新建一個鍵值為該鍵(key)的元素,并將key對應的值賦值為默認值(默認構造函數生成的對象)。
總結
以上是生活随笔為你收集整理的std::map的insert和下标[]访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ic启动器怎么导入模组_icmod模组管
- 下一篇: java成员变量的初始化