標準模板庫(STL)之 map 列傳

2021-07-10 05:14:19 字數 794 閱讀 9848

map 和 multimap 將 key/value pair(鍵值對)當做元素進行管理,它們可根據 key 的排序規則(sorting criterion,也即在構造某一具體例項 map 例項時,可以模板引數的形式指定排序規則)自動為元素排序。multimap 允許重複元素,map 不允許。

可像set容器一樣指定排序規則。來看它們的基本構造:

namespace

std

元素的次序由它們的key決定,和value無關。

std::map

coll;

排序規則針對的只是鍵(key),而不比較值(value)。

map容器例項而言,排序規則也是可以用來檢查相等性的:如果倆個元素的key彼此都不小於對方,兩個元素被視為相等: {x

≥yy≥

x⇒x=

y 和其他所有的關聯容器一樣,這些迭代器都是雙向迭代器。所以,對於只能接受隨機訪問迭代器的 stl 演算法(例如排序演算法或隨機亂序random shuffling演算法),map / multimap 就無福消受了。

更為重要的是,在 map / multimap 中,所有元素的 key 都被視為常量,因此,元素的實質型別是pair。這個限制是為了避免你試圖變更元素的 key而破壞已排好的元素次序。

STL標準模板庫 map

一 map是stl的乙個關聯容器,它提供一對一 其中第乙個可以稱為關鍵字,每個關鍵字只能在map 現一次,第二個可能稱為該關鍵字的值 的資料處理能力,由於這個特性,它完成有可能在我們處理一對一資料的時候,在程式設計上提供快速通道。這裡說下map內部資料的組織,map內部自建一顆紅黑樹 一種非嚴格意義...

C 標準模板庫(STL)之map常見用法詳解

map可以翻譯為對映,可以將任何基本型別對映到任何基本型別。map需要對映前的型別 鍵key 和對映後的型別 值value 所以括號裡填寫兩個型別,第乙個是key,第二個是value mapmp 如果是int型對映到int型,那就是普通的int型陣列 如果是字串到整型的對映,必須使用string而不...

標準模板庫STL之vector

stl vector 用於實現陣列的功能,相當於在陣列的基礎上封裝了一些常用的功能 push back在尾部新增乙個元素 pop back在尾部刪除乙個元素 clear清空所有的元素 at按索引訪問某個位置的元素 front返回頭元素 back返回尾元素 size返回元素的個數 capacity返回...