::value_type v1; //這個v1是string型別
set::key_type v2; //這個v2是string型別
map::value_type v3; //v3是pair型別pair
map::key_type v4; //v4是string型別
map
#include
#include
#include
using
namespace
std;
int main()
乙個map是的value_type是乙個pair,我們可以改變pair的值,但不能改變關鍵字成員的值。
#include
#include
#include
using
namespace
std;
int main()
; for (set
::iterator set_it = iset.begin();
set_it != iset.end();++set_it)
cout
<< endl;
return
0;}
#include
#include
#include
using
namespace
std;
int main()
return
0;}
vector
ivec=; //ivec有8個元素
set set2; //空集合
set2.insert(ivec.cbegin(), ivec.cend()); //set2有4個元素
set2.insert(); //現在set2有8個元素
//向word_count插入word的4種方法
pair的first成員是乙個迭代器,指向具有給定關鍵字的元素;second成員是乙個bool值,指出元素是插入成功還是已經存放在於容器中。
#include
#include
#include
using
namespace
std;
int main()
); if (!ret.second)
}for (const
auto &w : word_count)//將map中的每個元素
//列印結果
cout
<< w.first << "出現了"
<< w.second << "次"
<< endl;
return
0;}
ret儲存insert返回的值,是乙個pair。
ret.first是pair的第乙個成員,是乙個map迭代器,指向具有給定關鍵字的元素。
ret.first->解引用此迭代器,提取map中的元素,元素也是乙個pair。
ret.first->second map中元素的值部分。
++ret.first->second遞增此值。
multimap
authors;
//插入第乙個元素,關鍵字為barth, john
authors.insert();
//正確:新增第二個元素,關鍵字也是barth, john
<< endl << "multimap裡有"
<< ma.size() << "個資料."
<< endl;
multimap
::const_iterator im;
for (im = ma.begin(); im != ma.end();++im)
cout
<< "multimap裡有"
<< ma.count(1000) << "個1000."
<< endl;
if (ma.erase(-1) > 0)
cout
<< "刪除-1成功"
<< endl;
multimap
::iterator iter = ma.find(45);
if (iter!=ma.end())
ma.erase(ma.lower_bound(1000), ma.upper_bound(1000));
return
0;}
map和unordered_map容器提供了下標運算符合乙個對應的at函式。
對於乙個map使用下標操作,其行為與陣列或vector上的下標操作很不相同。
使用乙個不在容器中的關鍵字作為下標,會新增乙個此關鍵字的元素到map中。
set型別不支援下標。
與vector和string不同,map下標運算子返回的型別與解引用map迭代器得到的型別不同。
set
iset=;
iset.find(1); //返回乙個迭代器,指向key==1的元素
iset.find(11); //返回乙個迭代器,值指向iset.end()
iset.count(1); //返回1
iset.count(11); //返回0
STL系列 關聯容器的操作
在c 中定義了幾種型別用來表示容器關鍵字和值的型別。對於set,由於儲存的值就是關鍵字,所以,key type和value type是一樣的。set的迭代器是const的!對於set,find呼叫返回的是乙個迭代器,如果我們所給定的關鍵字在set中的時候,迭代器就指向該關鍵字,否則,find返回尾後...
容器 順序容器 關聯容器
容器分為 順序容器 關聯容器,示意圖如下 順序容器 只儲存值,關聯容器 key value形式,關聯容器的乙個元素包含兩個部分 鍵值對 key value 有序容器 底層實現為紅黑樹,即容器內的key是有序的 無序容器 底層實現為hash table,雜湊表 區別 順序容器通過元素在容器中的位置順序...
C Primer 學習筆記 關聯容器的操作
pair型別 定義在 utility標頭檔案中 pair是乙個用來生成特定型別的模板,類中儲存2個相關的成員變數 map中每個元素就是乙個pair物件 pairp v1,v2 v1是first,v2是second p.first p.second建構函式 pair 建立 pair 類的未初始化的新例...