11-1 使用关联容器
- 11.1.0 关联容器的类型
- 11.1.1 使用map
- 11.1.2 使用set
11.1.0 关联容器的类型
关联容器和顺序容器一样,都是模板类型,需要额外参数来指定类型
-
multi表示允许重复关键字
-
unordered表示关键字无序,内部是hash实现
-
map:存储“键-值”对,也叫关联数组
set:任何关键字只能出现一次
11.1.1 使用map
//打印每个单词在输入中出现的次数
map word_count; //string到size_t的空map
string word;
while(cin>>word)
++word_count[word]; //提取word的计数器并+1
//没有word时会自动创建并将值定为
for(const auto &w : word_count){
cout<
从map的元素时pair,
-
pair也是模板类型
-
pair.first得到map的“键”
pair.second得到map的“值”
11.1.2 使用set
上一个示例程序的一个合理扩展是:忽略常见单词,如"the"、"and"、"or"等。我们可以使用set保存想忽略的单词,只对不在集合中的单词统计出现次数: