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值是唯一的。集合中的元素按一定的順序排列。元素插入過程是按排序規則插入,...