C Primer 學習筆記 關聯容器的操作

2021-07-10 05:10:06 字數 1641 閱讀 6087

pair型別

定義在 utility標頭檔案中

pair是乙個用來生成特定型別的模板,類中儲存2個相關的成員變數

map中每個元素就是乙個pair物件

pairp(v1,v2);//v1是first,v2是second

p.first

p.second

建構函式

pair()
建立 pair 類的未初始化的新例項。

pair(object^, object^)
使用指定的物件對初始化 pair 類的新例項。

類別名稱

map : key_type   

set: key_type

value_type

乙個map的value_type是乙個pair,可以改變pair的成員函式,但是不能改變關鍵字成員的值(const)

關聯容器的迭代器

first() end()

新增元素

insert()

//對set

insert(p,q);

insert(a);a為乙個初始化器列表

//對map

insert(pair(v1,v2));

insert(make_pair(v1,v2));

新增單一的元素時候返回pair

pair是first的迭代器,指向具有給定關鍵字的元素(pair),(指向自己的指標)

second是乙個bool值,插入成功時候返回true;

map

< string, size_t> words;

string word;

while (cin >> word)

);//rat是pair類的物件

if (!rat.second)//如果單詞已經存在,insert什麼也不做,rat.second返回0,

++(rat.first->second);是乙個迭代器指向rat本身

}

刪除元素

erase(key_type)

刪除乙個關鍵字(包括關鍵字對應的所有值),返回刪除的元素數量

map的下標操作

c[k]

返回關鍵字為k的元素,如果k不存在,則新增乙個關鍵字為k的元素,對其值進行初始化

c.at[k]

訪問元素

find(k) 對不允許重複關鍵字的容器,返回乙個指向關鍵字為k的元素的迭代器,如果k不在容器內,返回尾後迭代器

count(k) 返回關鍵字等於k的元素數量,對於map,set,返回的只有1或0

lower_bound(k)返回乙個迭代器,指向第乙個具有關鍵字k的元素

upper_bound(k)。。。。。最後乙個具有。。

不存在時候,都返回尾後迭代器

equal_range(k)

返回乙個pair,其中first返回最前面匹配的元素迭代器,second返回最後面。。。

《C Primer》學習筆記 關聯容器

一,pair型別 pairp1 建立乙個空pair指標,兩個元素分別是t1,t2型別,採用值初始化 pairp1 v1,v2 first成員初始化為v1,second成員為v2 make pair v1,v2 建立新的pair物件 p1 p2 p1 p2 p.first 返回first成員 p.se...

C Primer 筆記 關聯容器

關聯容器 associative container 支援通過鍵來高效的查詢和讀取元素。map 關聯陣列,元素通過鍵來儲存和讀取 set 大小可變的集合,支援通過鍵來快速讀取 multimap 支援同乙個鍵出現多次的map型別 multiset 支援同乙個鍵多次出現的set型別 pairp1 建立乙...

C Primer學習筆記 10 關聯容器

題記 本系列學習筆記 c primer學習筆記 主要目的是討論一些容易被大家忽略或者容易形成錯誤認識的內容。只適合於有了一定的c 基礎的讀者 至少學完一本c 教程 本文主要討論c 標準庫中的關聯容器 associative container 內容主要涉及map,set,multimap和multi...