C C map的基本操作總結

2021-07-13 18:20:56 字數 1971 閱讀 6209

標準庫map型別是一種以鍵-值(key-value)儲存的資料型別。以下分別從以下的幾個方面總結:

pair型別是在有檔案utility中定義的,pair型別包含了兩個資料值,通常有以下的一些定義和初始化的一些方法:

上述第一種方法是定義了乙個空的pair物件p,第二種方法是定義了包含初始值為v1和v2的pair物件p。第三種方法是以v1和v2值建立的乙個新的pair物件。

除此之外,pair物件還有一些方法,如取出pair物件中的每乙個成員的值:

例如:

#include 

#include

#include

#include

using

namespace

std;

int main()

map是鍵-值對的組合,有以下的一些定義的方法:

上述第一種方法定義了乙個名為m的空的map物件;第二種方法建立了m2的副本m;第三種方法建立了map物件m,並且儲存迭代器b和e範圍內的所有元素的副本。

map的value_type是儲存元素的鍵以及值的pair型別,鍵為const。

在map中元素有兩種插入方法:

在map中使用下標訪問不存在的元素將導致在map容器中新增乙個新的元素。

insert函式的插入方法主要有如下:

上述的e乙個value_type型別的值。beg和end標記的是迭代器的開始和結束。

兩種插入方法如下面的例子所示:

#include 

#include

using

namespace

std;

int main()

for (int i = 10; i < 20; i++)

map::iterator it;

for (it = mp.begin(); it != mp.end(); it++)

return

0;}

注意:上述採用下標的方法讀取map中元素時,若map中不存在該元素,則會在map中插入。

因此,若只是查詢該元素是否存在,可以使用函式count(k),該函式返回的是k出現的次數;若是想取得key對應的值,可以使用函式find(k),該函式返回的是指向該元素的迭代器。

上述的兩個函式的使用如下所示:

#include 

#include

using

namespace

std;

int main()

if (mp.count(0))else

map::iterator it_find;

it_find = mp.find(0);

if (it_find != mp.end())else

map::iterator it;

for (it = mp.begin(); it != mp.end(); it++)

return

0;}

從map中刪除元素的函式是erase(),該函式有如下的三種形式:

第一種方法刪除的是m中鍵為k的元素,返回的是刪除的元素的個數;第二種方法刪除的是迭代器p指向的元素,返回的是void;第三種方法刪除的是迭代器b和迭代器e範圍內的元素,返回void。

如下所示:

#include 

#include

using

namespace

std;

int main()

mp.erase(0);

mp.erase(mp.begin());

map::iterator it;

for (it = mp.begin(); it != mp.end(); it++)

return

0;}

C C map的基本操作總結

標準庫map型別是一種以鍵 值 key value 儲存的資料型別。以下分別從以下的幾個方面總結 map物件的定義和初始化 map物件的基本操作,主要包括新增元素,遍歷等 pair型別是在有檔案utility中定義的,pair型別包含了兩個資料值,通常有以下的一些定義和初始化的一些方法 上述第一種方...

的基本操作 Linux 基本操作命令總結

每日17點準時技術乾貨分享 linux 基本操作命令 檔案和目錄管理 建立和刪除 建立 mkdir 刪除 rm 刪除非空目錄 rm rf file 目錄 刪除日誌 rm log 等價 find name log exec rm 移動 mv 複製 cp 複製目錄 cp r 建立檔案 touch 檢視 ...

C C set的基本操作總結

set容器中只能儲存鍵,是單純的鍵的集合,其中鍵是不能重複的。下面簡單總結下set容器的操作 set物件的定義和初始化方法包括 其中,b和e分別為迭代器的開始和結束的標記。例如 include include include using namespace std int main set s v....