關聯容器:
//類a沒有《操作符
bool compare(const a& a1,const a& a2);
set< a,decltype(compare)* > book(compare);
pair author;
map
word_count;
string word;
while (cin >> word) ++word_count[word];
for(const
auto &w:word_count)
count《有序關聯容器:
map(關聯陣列):
類pair有兩個public成員
//因為pair的鍵值是const的,所以範圍for引用必須要加const
for (const pair&p : mp)
cout
<< p.first << " "
<< p.second << endl;
//值初始化
mapmp = ,
, };
//必須用包含起來
map容器元素
pairp("aa", 1);
pairp=;
對於不包含重複關鍵字的關聯容器,只插入1個元素的isert/emplace返回1個pair。
first:迭代器
second:成功為true,失敗為false
mp.insert();//建議使用
map
mp;string word;
while (cin >> word)
); if (!ret.second)//出現重複
++ret.first->second;//對map中對應的元素的內容+1
}//或者為
while (cin >> word)
++mp.insert().first->second;
刪除
size_t ret1 =mp.erase(2);
//刪除關鍵字為2的pair,返回被刪除的個數
auto ret2 = mp.erase(mp.begin());//刪除迭代器指向的pair,返回指向下乙個元素
auto ret3 = mp.erase(mp.begin(), --mp.end());//刪除範圍不包括--mp.end(),返回--mp.end()
下標操作
mp[9] =3;//如果下標(關鍵字)不存在,會自動插入該元素
mp.at(3) = 2;
訪問
map
mp = ,,,, };
auto ret1 = mp.find(1);//返回乙個迭代器
auto ret2 = mp.find(11);//未找到,返回迭代器=mp.end();
auto ret3 = mp.count(1);//返回數量
auto ret4 = mp.count(11);
//返回的迭代器指向第乙個關鍵字等於2的元素。
auto ret5 = mp.lower_bound(2);
/*返回的迭代器指向第乙個關鍵字大於3的元素,即最後1個為該關鍵字之後的元素*/
auto ret6 = mp.upper_bound(3);
/*如果該元素不存在,則lower_bound和upper_bound返回相同的迭代器,指向不影響容器的位置*/
cout << beg->first
<< " "
<< beg->second
<< endl;
for (auto pos = mmp.equal_range(1), pos.first! = pos.second; ++pos.first)
cout << pos.first->second << endl;
示例:cp391
大小比較
1.依次比較first和second成員
2.兩個比較的關係為與
3.記得帶括號
cout
<< (p2 < p3) << endl;
cout
<< (p2 == p3) << endl;
cout
<< (p2 != p3) << endl;
#include
<
set>
//只儲存關鍵字的容器
1.只儲存關鍵字
2.唯讀
set
iset = ;
iset.insert();
find函式返回乙個指向給定關鍵字/(找不到)尾後迭代器。
if( iset.
find(i)==iset.
end() )
//迭代器
auto set_it = iset.begin();
cout
<< *set_it << endl;
setiset = ;
int num = 2;
//找到後會返回指向該關鍵字的迭代器,否則返回尾後迭代器
if (iset.find(num) == iset.end())
auto map_it = mp.begin();
while (map_it != mp.end())
cout << map_it->first << map_it->secod << endl;
三 關聯式容器 有序
標籤 空格分隔 c stl 關聯式容器是關聯式陣列概念的推廣 依據特定的排序規則,自動為其元素排序 由二叉樹實現 提供對元素的快速訪問 主要的有序關聯式容器有 set 關鍵字和資料檔案是同乙個值。具有唯一性 multiset 類似,但是包含重複的元素 map 成對資料的容器。鍵值對,唯一性 mult...
STL 關聯容器 之set 無重複有序集合
參考資料 std setfirst int myints std setsecond myints,myints 5 std setthird second std setfourth second.begin second.end struct classcomp 返回乙個二元組 pair 成員 ...
STL 關聯容器 之set 無重複有序集合
參考資料 參考資料 std setfirst int myints std setsecond myints,myints 5 std setthird second std setfourth second.begin second.end struct classcomp 返回乙個二元組 pai...