C++ map注意事項

C++ map注意事項

1、在map中,由key查找value時,首先要判斷map中是否包含key。

2、如果不檢查,直接返回map[key],可能會出現意想不到的行為。如果map包含key,沒有問題,如果map不包含key,使用下標有一個危險的副作用,會在map中插入一個key的元素,value取默認值,返回value。也就是說,map[key]不可能返回null。

3、map提供了兩種方式,查看是否包含key,m.count(key),m.find(key)。

4、m.count(key):由于map不包含重復的key,因此m.count(key)取值為0,或者1,表示是否包含。

5、m.find(key):返回迭代器,判斷是否存在。

6、對于下面的場景,存在key就使用,否則返回null,有下面兩種寫法:

1 if(m.count(key)>0)
2 {
3     return m[key];
4 }
5 return null;
1 iter = m.find(key);
2 if(iter!=m.end())
3 {
4     return iter->second;
5 }
6 return null;

這里需要注意:前一種方法很直觀,但是效率差很多。因為前面的方法,需要執行兩次查找。因此,推薦使用后一種方法。

7、對于STL中的容器,有泛型算法find(begin,end,target)查找目標,map還提供了一個成員方法find(key)

轉載于:https://www.cnblogs.com/wb118115/p/5818872.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/271013.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/271013.shtml
英文地址,請注明出處:http://en.pswp.cn/news/271013.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

oracle數據庫any,Oracle權限集合全集

alter any cluster 修改任意簇的權限alter any index 修改任意索引的權限alter any role 修改任意角色的權限alter any sequence 修改任意序列的權限alter any snapshot 修改任意快照的權限alter any table 修改任意表的權限alter any trigger 修改任意觸發器的權限alter clust…

equals方法中變量在前和在后的區別

如果是兩個都是變量,那就放哪都行沒啥區別 如果有一個是常量一個變量的情況下,因為equals()方法是在Object類里定義的,也就是說任何對象都可以調用equals()方法,但是對象在調用方法的時候,如果對象為null那系統運行就…

空間句法軟件_【特訓營報名】空間句法理論與實踐應用(第二期更新版)丨城市數據派...

最新線上特訓營 授課老師專業過硬負責空間句法官方中文網站建設作為主要譯者翻譯空間句法奠基作《空間的社會邏輯》此課程為空間句法初級課程的第二期更新版課程內容更豐富更完善教學視頻永久觀看報名時間及價格 課程原價1000元,提前報名享優惠!4月13-19…

數據庫安全性相關知識筆記?

1、數據庫的惡意訪問形式未經授權讀取數據、未經授權修改數據、未經授權破壞數據。2、數據庫安全性概念數據庫安全性(Data Base Security)主要是指盡可能保護數據庫不受惡意訪問。3、數據庫安全防護的層次數據庫系統層次(DataBase System&…

HDU4055 - number string(DP)

題目鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid4055 思路&#xff1a;dp[i][j]表示處理前i個字符以j結尾可能的序列數。當a[i]I時&#xff0c;dp[i][j]sum(dp[i-1][k]),&#xff08;1<k<j-1&#xff09;&#xff0c; 可進一步化為dp[i][j-1]dp[i-1][j-…

什么是字面量

1:字面量 字面量就是比如說int a 1; 這個1就是字面量 &#xff0c;a是變量名 又比如String b "abc";這個abc就是字面量&#xff0c;b是變量名

oracle ebs 基于host(主機文件)并發程序的開發,Oracle EBS 基于Host(主機文件)并發程序的開發...

您可以將程序命名為 .prog,其中 是在“可執行并發程序”窗口的“執行文件”字段中輸入的值。然后,使用執行文件名(無擴展名)創建與 fndcpesr 的符號鏈接,其中 fndcpesr 位于 $FND_TOP/$APPLBIN 目錄下。Oracle EBS 基于Host(主機文件)并發程序的開發主語言并發程序您可以將程序…

摩托羅拉v8對講機驅動軟件_摩托羅拉數字機如何設置“個性”提示音

諾基亞手機的開機鈴聲是很多70后 80后的回憶&#xff0c;給心愛的“摩機”P8668i配上一段開機鈴聲“Hello MOTO”,既俏皮又炫酷。如果設置個性提示音&#xff0c;今天就給大家簡單示范下。一、第一種語音提示是“文本轉語音”以P8668i對講機為例&#xff0c;CPS軟件里面可以選擇…

電腦快捷鍵:關于shift鍵的11個實用技巧

今天要和大家一起聊一下我們電腦鍵盤上那些關于shift鍵的事兒。提起電腦鍵盤上的shift鍵大家一定很熟悉&#xff0c;因為在平常使用電腦的時候呢會經常的用到它。 可是大家知道嗎&#xff1f;shift按鍵除了我們平常使用的那些功能和作用以外&#xff0c;它還有11個你有可能不知…

洛谷P1061 Jam的計數法

題目描述 Jam是個喜歡標新立異的科學怪人。他不使用阿拉伯數字計數&#xff0c;而是使用小寫英文字母計數&#xff0c;他覺得這樣做&#xff0c;會使世界更加豐富多彩。在他的計數法中&#xff0c;每個數字的位數都是相同的&#xff08;使用相同個數的字母&#xff09;&#xf…

java中final使用

final關鍵字可以用來修飾引用、方法和類。 1、用來修飾一個引用 如果引用為基本數據類型&#xff0c;則該引用為常量&#xff0c;該值無法修改&#xff1b; 如果引用為引用數據類型&#xff0c;比如對象、數組&#xff0c;則該對象、數組本身可以修改&#xff0c;但指向該對象或…

oracle未過賬是什么意思,EBS R12 GL過帳問題(急)

憑證在過賬時出現以下錯誤日志&#xff0c;麻煩幫忙分析下是什么原因。謝謝&#xff01;---------------------------------------------------------------------------總帳管理系統: Version : 12.0.0Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.GLP…

曲線的生成算法實現_PCGPlanet1-地形生成算法簡介

比較常用的地形生成算法有三種&#xff1a;四叉樹算法,GeoMipmap算法&#xff0c;移動立方體算法目前市面游戲采用的方案基本都是以這三種算法為基礎實現的&#xff0c;下面依次進行介紹四叉樹算法很經典的算法&#xff0c;在沒有GPU的時代就已經出現了&#xff0c;原始算法是純…

數據庫安全:數據庫加密技術介紹

數據庫加密是計算機系統對信息進行保護的一種最可靠的方法。它利用密碼技術對信息進行加密&#xff0c;實現信息屏蔽&#xff0c;從而起到保護信息安全的作用。對數據庫中的數據進行加密&#xff0c;可以防止數據在存儲和傳輸過程中失密。常用的數據加密技術按照作用不同分為數…

poj 1201 差分約束

轉自&#xff1a;優YoU http://user.qzone.qq.com/289065406/blog/1307063918 大致題意&#xff1a; 給出數軸上的n個區間[ai&#xff0c;bi]&#xff0c;每個區間都是連續的int區間。 現在要在數軸上任意取一堆元素&#xff0c;構成一個元素集合V 要求每個區間[ai&#xff0c…

oracle11 刪除表空間,oracle11g啟動停止服務,修改字符集,導入導出,創建刪除表空間,卸載oracle等...

oracle11g啟動停止服務,修改字符集,導入導出,創建刪除表空間,卸載oracle等1. 【啟動停止服務】//啟動停止監聽 www.2cto.comlsnrctl start;lsnrctl stop;//啟動停止服務sqlplus orcl as sysdba; //登錄>shutdown immediate;>STARTUP;或者ps -ef|grep ora_dbw0_$O…

Java中包裝類型和基本類型的使用場景(阿里開發規范)

基本數據類型和包裝數據類型推薦使用場景 所有的 POJO 類屬性必須使用包裝數據類型RPC 方法的返回值和參數必須使用包裝數據類型所有的局部變量推薦使用基本數據類型

數據庫:整理四個實用的SQLServer腳本函數

今天給大家分享小編自己日常工作積累的四個SQLServer腳本函數 目錄 1、字符串指定字符分割為list 2、數字去掉末尾的0 3、創建表、視圖、函數、存儲過程判斷是否存在 4、金額轉換為大寫 1、字符串指定字符分割為list 功能&#xff1a;主要適用于數據庫字段存儲字段用逗號等分隔…

python排名分析_用Python分析了近幾年胡潤排行榜,我酸了……

10 月 20 日&#xff0c;胡潤研究院發布《2020 胡潤百富榜》&#xff0c;也就是富富富豪排行榜杭州的馬云毫無懸念的再次摘下中國首富桂冠&#xff0c;深圳的馬化騰位列第二榜單被我翻爛了&#xff0c;還是沒有找到我的名字&#xff0c;難道是被遺漏了嗎&#xff1f;&#xff1…

sublime代碼片段

創建方法&#xff1a;Tools > New Snippet 這時你會看到如下示例代碼&#xff1a; <snippet><content><![CDATA[Hello, ${1:this} is a ${2:snippet}.]]></content><!-- Optional: Set a tabTrigger to define how to trigger the snippet -->…