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