#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, int> m;
for (int i = 0; i < 5; i++)
m[i]++;
for (int i = 0; i < 5; i++)
cout<<m[i];
}
输出:
11111
现在,如何初始化mi的值?它不应该转化为mi的值增加1吗?
发布于 2020-01-17 07:48:12
它不应该转化为mi的值增加1吗?
它是。执行map[key]
时,如果key
不存在,则将其添加到映射中,值初始化映射到键的值。对于int
值,初始化意味着零初始化。因此,m[i]
是0
,而++
将其增量为1
。
发布于 2020-01-17 07:46:15
如果您查看医生们 for std::map::operator[]
返回对映射到与键等效的键的值的引用,如果该键不存在,则执行插入。
因此,基本上,如果该键不存在,m[i]
将执行插入操作,然后通过引用新插入的值进行增量。
https://stackoverflow.com/questions/59790577
复制相似问题