1 两种主要关联容器 map 和 set,从map中提取元素时得到一个pair类型。
map<string, size_t> word_count;
string word;
while (cin >> word) ++word_count[word];
for (const auto &a:word_count)
{
cout << a.first << " " << a.second << endl;
}
2 map有值,set无值.
map<string,size_t> word_cout={{“my”,1},{“name”,1},{“is”,3}};
set<string> exclude={"the","name","is"};
3 multimap和multiset关键字不唯一,map与set关键字唯一。
4 关联容器的迭代器 c.lower_bound(K)返回一个迭代器,指向第一个关键字不小于K的元素。
c.cout(K) 返回关键字为K的数量。
c.find(K) 返回位置,如果没有直接返回.end();
multimap<string, string>::size_type entries = authors.count(search_item);
multimap<string, string>::iterator iter = authors.find(search_item);
while(entries) {
cout << iter->second << endl;
++iter;
--entries;
}
5 删除元素 c.erase(K) 结果返回删除元素的个数。
c.erase(b,c) 删除bc之间的元素
6 添加数据 c.insert({word,1});
c.insert(pair<strting,size_t>(word,1));
7 下标操作 cout<<word_cout["anna"];输出元素的值
++cout<<word_cout["anna"];