增量映射<字符串,整数>使用 ++ 运算符
increment map<string, int> using ++ operator
我有一个映射来计算单词在文件中的出现次数。我正在从文件中读取单词,每次读取一个单词时,我想这样做:
map[word]++; //(where map is the name of my map, I'm not using map as a name of course)
这样,如果my map已经有'word'作为键,它将对其进行加1,否则它将创建新键并对其进行加1。
这就是我所关心的:如果我在一个新键上映射[word]++(这在第一个单词读取时是不可避免的),我的程序会因为map中的int被初始化而崩溃吗?如果是这样,告诉我的map最有效的方法是什么:如果单词已经存在,对值执行++,否则,创建一个新的键value = 1?使用if语句与'map。我觉得这里似乎多余,你觉得呢?
谢谢
我的程序会因为map中的int被初始化而崩溃吗?
没有;如果键为word
的元素不存在,则创建该元素并初始化其值。值初始化的int
值为0
相关文章:
- 为什么比较运算符如此快速
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- 使用C++中的模板和运算符重载执行矩阵运算
- 为什么这个运算符<重载函数对 STL 算法不可见?
- 增量运算符与后缀混淆
- 一个关于在C++中重载布尔运算符的问题
- 运算符C++ "delete []"仅删除 2 个前值
- 模板类无法识别友元运算符
- 我可以使用条件运算符初始化C风格的字符串文字吗
- 关闭||运算符优化
- 通过继承类使用来自不同命名空间的运算符
- C++Cast运算符过载
- 如何使用AngelScript注册SFML Vector2运算符
- 重载元组索引运算符-C++
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 布尔比较运算符是如何在C++中工作的
- 重载运算符new[]的行为取决于析构函数
- 是否需要使用 - &gt;运算符在C 中调用成员函数时