c map實用操作

2021-09-29 19:32:50 字數 2687 閱讀 5640

map

map是stl的乙個關聯容器,它提供一對一(key-value)的資料處理能力。其中key為關鍵字,每個關鍵字只能在map**現一次,value為該關鍵字的值。

鍵可以是基本型別,也可以是類型別。字串經常被用來作為鍵,如果想要儲存姓名和位址的記錄,就可以這麼使用。

map內部自建一顆紅黑樹,這顆樹具有對資料自動排序的功能,所以在map內部所有的資料都是有序的。

新增和更新

有四種方式給map增加元素:

// 假設map由string和int組成,以下例程**於參考資料

// 1) assignment using array index notation

foo[

"bar"]=

12345

;// 2) assignment using member function insert() and stl pair

foo.

insert

(std::pairint>

("bar"

,12345))

;// 3) assignment using member function insert() and "value_type()"

foo.

insert

(mapint>

::value_type

("bar"

,12345))

;// 4) assignment using member function insert() and "make_pair()"

foo.

insert

(std::

make_pair

("bar"

,12345))

;

其中,有乙個是以陣列形式,其餘三個都是使用成員函式insert。這兩種形式在語義就是不同的。

對於後三種insert形式:

綜上,如果需要更新資料,使用,如果不需要重複的資料,使用insert(std::make_pair)

當然,c11提供了另乙個選擇,map.emplace("bar", 12345);,它的行為與insert一樣,但快且簡單。

查詢查詢一般分為兩種情況:

使用下面的**片斷即可:

// 返回bool

// 使用find

return cars.

find

(name)

!= cars.

end();

// 使用count

return cars.

count

(name)!=0

;// 返回迭代器

auto element = cars.

find

(name);if

(element != cars.

end())

else

刪除

刪除map中的元素通常使用erase()clear()

erase()用於刪除指定的鍵值對,可以指定位置、值或者成員區間,用法如下:

示例**如下:

// c++ code to demonstrate the working of erase() 

#include

#include

// for map operations

using

namespace std;

intmain()

輸出如下:

the initial map elements are : 

a->5

b->10

c->15

d->20

e->30

the map elements after 1st deletion are :

a->5

c->15

d->20

e->30

the map elements after 2nd deletion are :

a->5

d->20

e->30

the number of elements deleted in 2nd deletion are : 1

the map elements after 3rd deletion are :

a->5

d->20

e->30

the number of elements deleted in 3rd deletion are : 0

the map elements after 4th deletion are :

a->5

clear()用於清空map,該函式執行後,會刪除map中所有元素,map的size為0。

參考資料

most efficient way to assign values to maps

different ways to delete elements in std::map (erase() and clear())

C map基本操作

map是c 的乙個標準容器,她提供了很好一對一的關係,在一些程式中建立乙個map可以起到事半功倍的效果,總結了一些map基本簡單實用的操作!1.map最基本的建構函式 mapmapstring mapmapint mapmapstring map char string mapchar mapmap...

c map基本操作

map是c 的乙個標準容器,她提供了很好一對一的關係,在一些程式中建立乙個map可以起到事半功倍的效果,總結了一些map基本簡單實用的操作!1.map最基本的建構函式 mapmapstring mapmapint mapmapstring map char string mapchar mapmap...

C map的基本操作

map是c 的乙個標準容器,她提供了很好一對一的關係,在一些程式中建立乙個map可以起到事半功倍的效果,總結了一些map基本簡單實用的操作!1.map最基本的建構函式 map mapstring map mapint mapchar mapstring map char string mapchar...