C 容器 map的使用踩坑記錄

2021-10-03 11:20:30 字數 1552 閱讀 1838

開發過程中,為了便於查詢,有時會用map容器進行鍵值對(key-value)的儲存。在c++中,map的常用功能及注意點記錄如下。

常用的map構造方式如下:

#include

mapint> mapscore;

通過insert可以對map插入元素,主要有以下幾種方式:

mapscore.

insert

(pairint>

("tom",99

));//pair

mapscore.

insert

(mapint>

::value_type

("amy",99

));//value_type

mapscore.

insert

(make_pair

("john",99

));//make_pair

直接對map進行類似陣列的賦值操作也可以完成插入元素:

mapscore[

"siri"]=

99;//array index notation

以上兩種插入元素的方式不同之處在於:

若鍵已經存在,則insert的新值將會被忽略;array索引的新值將會覆蓋舊值。

用上述的**為基礎,執行下面的**的結果如注釋:

mapscore.

insert

(make_pair

("john",88

));//仍然是john-99

mapscore[

"siri"]=

88;//變為siri-88

使用find函式對鍵進行查詢,返回指向鍵的迭代器,若不存在,則返回map的尾端。

mapint>

::iterator iter = mapscore.

find

("siri");

if(iter != mapscore.

end())

int isdeleted = mapscore.

erase

("tom");

//成功返回1,失敗返回0

//利用查詢刪除指定鍵

iter = mapscore.

find

("amy");

if(iter != mapscore.

end())

//利用迭代器批量刪除、清空

mapscore.

erase

(mapscore.

begin()

, mapscore.

end())

;//等價於

mapscore.

clear()

;

int nsize = mapscore.

size()

;

Python Sphinx使用踩坑記錄

描述 使用 pip 安裝sphinx後,按照教程建立了乙個新的py檔案,如下 run.py defrun name this is how we run param name name of people who runs print name,is running 隨後新建乙個目錄,使用 sphi...

Python Sphinx使用踩坑記錄

使用 pip 安裝sphinx後,按照教程建立了乙個新的py檔案,如下 run.py def run name this is how we run param name name of people who runs print name,is running 隨後新建乙個目錄,使用 sphinx...

zTree的使用踩坑記錄(編輯 新增)

最近做了乙個功能,在vue中使用到了ztree,要求實現樹節點的新增和編輯,即滑鼠移到節點上的時候顯示出這兩個按鈕,點編輯的時候節點會變成輸入框可直接輸入,點新增的時候會在該節點的子節點中新增乙個節點,並顯示為可編輯狀態。做的過程中踩了不少坑,記錄下。首先是先在main.js引入ztree外掛程式 ...