C 學習筆記(三十六) 之map容器詳細介紹

2021-10-08 09:56:19 字數 1938 閱讀 8509

map容器是關聯型容器,鍵值對應著實值,所有元素根據鍵值自動排序

map中的所有元素都是pair對組pair的第乙個元素為鍵值,第二個元素為實值map不允許有相同的鍵值,但允許有相同的實值。

與set容器一樣,不允許通過迭代器修改map的鍵值,因為鍵值與map的排列有關,如果修改鍵值,那麼map的結構會被破壞。map的實值是可以修改的。

multimap與map的操作特性類似,位移不同就是multimap允許鍵值重複。

map和multimap都是用紅黑樹作為底層實現的。

map maptt;

//map預設建構函式:

map(

const map &mp)

;//拷貝建構函式

map&

operator=(

const map &mp)

;//過載等號操作符

swap

(mp)

;//交換兩個集合容器

size()

;//返回容器中元素的數目

empty()

;//判斷容器是否為空

map.

insert(.

..);

//往容器插入元素,返回pair

map<

int, string> mapstu;

// 第一種 通過pair的方式插入物件

mapstu.

insert

(pair<

int, string>(3

,"小張"))

;// 第二種 通過pair的方式插入物件

mapstu.

inset

(make_pair(-

1,"校長"))

;// 第三種 通過value_type的方式插入物件

mapstu.

insert

(map<

int, string>

::value_type(1

,"小李"))

;// 第四種 通過陣列的方式插入值

mapstu[3]

="小劉"

;mapstu[5]

="小王"

;

clear()

;//刪除所有元素

erase

(pos)

;//刪除pos迭代器所指的元素,返回下乙個元素的迭代器。

erase

(beg,end)

;//刪除區間[beg,end)的所有元素 ,返回下乙個元素的迭代器。

erase

(keyelem)

;//刪除容器中key為keyelem的對組。

find

(key)

;//查詢鍵key是否存在,若存在,返回該鍵的元素的迭代器;/若不存在,返回map.end();

count

(keyelem)

;//返回容器中key為keyelem的對組個數。對map來說,要麼是0,要麼是1。對multimap來說,值可能大於1。

lower_bound

(keyelem)

;//返回第乙個key>=keyelem元素的迭代器。

upper_bound

(keyelem)

;//返回第乙個key>keyelem元素的迭代器。

equal_range

(keyelem)

;//返回容器中key與keyelem相等的上下限的兩個迭代器。

C 學習筆記 三十六 命名空間

在 c 應用程式中。例如,您可能會寫乙個名為 xyz 的函式,在另乙個可用的庫中也存在乙個相同的函式 xyz 這樣,編譯器就無法判斷您所使用的是哪乙個 xyz 函式。因此,引入了命名空間這個概念,專門用於解決上面的問題,它可作為附加資訊來區分不同庫中相同名稱的函式 類 變數等。使用了命名空間即定義了...

opencv學習筆記(三十六)距離變換

距離變換cvdisttransform 距離變換於1966年被學者首次提出,目前已被廣泛應用於影象分析 計算機視覺 模式識別等領域,人們利用它來實現目標細化 骨架提取 形狀插值及匹配 粘連物體的分離等。距離變換是針對二值影象的一種變換。在二維空間中,一幅二值影象可以認為僅僅包含目標和背景兩種畫素,目...

C 關聯容器之map

認識map map型別通常被稱為關聯陣列,關聯陣列與 正常 陣列類似,不同之處在於其下標不必是整數。map是標準的關聯式容器,乙個map是乙個鍵值對序列,即 key,value 對。它提供基於key的快速檢索能力。map中key值是唯一的。集合中的元素按一定的順序排列。元素插入過程是按排序規則插入,...