日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

std::map的insert和下标[]访问

發布時間:2023/12/9 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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和下标[]访问的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。