奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

C語言

c語言中map的用法簡介

時間:2024-09-20 13:36:13 C語言 我要投稿
  • 相關(guān)推薦

c語言中map的用法簡介

  C++實際開發(fā)的過程會經(jīng)常使用到map。下面小編給大家整理了c語言中map的用法,供大家參閱。

  map是一個key-value值對,key唯一,可以用find進行快速的查找。其時間復雜度為O(logN),如果采用for循環(huán)進行遍歷數(shù)據(jù)時間復雜度為O(N)。如果map中的數(shù)據(jù)量比較少時,采用find和for循環(huán)遍歷的效率基本沒有太大的區(qū)別,但是在實際的開發(fā)過程中,存儲在map中的數(shù)據(jù)往往是大量的,這個時候map采用find方式效率比遍歷效率高的多。

  確定采用find方式查找數(shù)據(jù)后,我們需要考慮存儲map的空間復雜度,對于基礎(chǔ)數(shù)據(jù)類型的數(shù)據(jù)(int char等)這里就不做討論。本文討論的是map中存儲的數(shù)據(jù)結(jié)構(gòu)struct情況。

  1、如果map中的key為struct此時,需要先對struct進行操作符重載,關(guān)于這部分內(nèi)容可以參考C++ 重載操作符示例

  2、map中的key只能是對象,而不能是指針。(這一點尤為重要)。

  下面給出三個map定義進行說明:

  std::map* pmapNHSymbolInfo1

  std::map* pmapNHSymbolInfo2

  std::map* pmapNHSymbolInfo2

  其中,pmapNHSymbolInfo1、pmapNHSymbolInfo2中使用find正常,遍歷也正常,pmapNHSymbolInfo3使用find查找不到對應(yīng)的數(shù)據(jù)(數(shù)據(jù)已經(jīng)存在,find不到,遍歷可以找到)

  原因:std::map* pmapNHSymbolInfo2在find的時候是根據(jù)指針進行查找的。而在數(shù)據(jù)時,數(shù)據(jù)都是new的,每次new出的地址是不一樣的,在find數(shù)據(jù)時,根據(jù)地址查找結(jié)果就找不到數(shù)據(jù)。通過遍歷是取出地址中內(nèi)容一一比較,這樣能夠找到數(shù)據(jù)。

  pmapNHSymbolInfo1、pmapNHSymbolInfo2兩種方式都可以使用find方式查找數(shù)據(jù),但是pmapNHSymbolInfo1中Stru_NHSymbol為對象,這樣會使map占用空間比較大,pmapNHSymbolInfo2的Stru_NHSymbol為指針,存儲時地址占用空間小,但是每次都是new處理來的,所有一定要記住使用完成后一定要,否則會出現(xiàn)內(nèi)存泄露。

  3、map插入數(shù)據(jù)2中方式比較

  std::map* pmapNHSymbolInfo

  pmapNHSymbolInfo->(std::make_pair(pNHSymbolkey, pNHSymbol));該方式的key如果出現(xiàn)重復,則會插入數(shù)據(jù)失敗;

  (*pmapNHSymbolInfo)[objNHSymbolkey] = pNHSymbol;該方式的key如果出現(xiàn)重復則直接覆蓋掉原來的數(shù)據(jù),永遠不會出現(xiàn)插入失敗的問題。

  結(jié)論:C++ map中key不要使用指針,請直接使用對象。

【c語言中map的用法簡介】相關(guān)文章:

c語言中map的基本用法10-28

c語言中char的用法簡介09-29

C語言中assert的用法06-02

C語言中sizeof的用法09-09

c語言中bit的用法11-01

c語言中%s的用法07-01

c語言中time函數(shù)的用法08-27

C語言中strpbr()函數(shù)的用法07-25

c語言中l(wèi)og的用法指導10-23

C語言中sscanf的用法有哪些09-25

主站蜘蛛池模板: 会理县| 四子王旗| 武山县| 秦皇岛市| 高雄县| 梁山县| 晋江市| 久治县| 宁德市| 阿克苏市| 蒙山县| 中宁县| 龙泉市| 新兴县| 天津市| 吴堡县| 维西| 海门市| 乳山市| 新丰县| 红河县| 青铜峡市| 德清县| 贡山| 大英县| 长顺县| 越西县| 高要市| 凤凰县| 咸丰县| 霞浦县| 晋城| 石河子市| 香港| 双峰县| 建水县| 黄冈市| 四川省| 仁布县| 邵阳市| 福海县|