【C++】关联容器(一):使用关联容器
11.1 使用关联容器
关联容器支持高效的关键字查找和访问。两个主要的关联容器类型是 map 和 set。
标准库提供了 8 个关联容器,分别是:map、set、multimap、multiset、unordered_map、unordered_set、unordered_multimap、unordered_multiset。
使用 map
类似顺序容器,关联容器也是模板。为了定义一个 map,我们必须指明关键字(key)和值(value)的类型。
一个经典的使用关联数组的例子是单词记数程序:
map<string, size_t> word_count;
string word;
while(cin >> word) {
++ word_count[word];
}
for(const auto &w : word_count) {
cout << w.first << " occurs" << w.second
<< ((w.second > 1) ? " times" : " time") << endl;
}
使用 set
上一个示例程序的合理拓展是,忽略常见的单词,比如“the”、“and”、“or”等。可以使用 set 保存像忽略的单词:
map<string, size_t> word_count;
set<string> exclde = {"the", "and, "or" /*, other words ...*/};
string word;
while(cin >> word) {
if(exclude.find(word) == exclude.end()) {
++ word_count(word);
}
}
关联容器 map 和 set 均有 find 调用,它返回一个迭代器。如果给定的关键字在 map 或 set 当中,那么迭代器指向该关键字,否则,find 返回尾后迭代器,代表查询失败,即给定的查询不在字典或集合当中。
原文地址:https://blog.csdn.net/Coffeemaker88/article/details/144134022
免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!