1、代码示例:
unordered_map<string, int> mymap1;
auto val = mymap1["str"]; // val为0
// 常用于词频统计,存在则加一,不存在则创建后赋值为1
unordered_map<string, int> mymap2;
mymap2["str"]++; // mymap2["str"] = 1
Map中使用方括号访问键对应的值map[key]时:
- 若该key存在,则访问取得value值;
- 若该key不存在,访问仍然成功,取得value对象默认构造的值。具体如下:
用 []访问,但key不存在时,C++会利用该key
及默认构造的value
,组成{key,value}
对,插入到map中。
value为string
对象,则构造空串;value为int
对象,构造为0。
注:因此在访问map元素时,应先用map.find
查找该元素,找到后再访问。 同时,用法mymap2["str"]++
;常用于词频统计,存在则加一,不存在则创建后赋值为1。