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...