C++ 在没有使用赋值运算符的情况下,map的值是如何初始化的? #包括 #包括 使用名称空间std; int main() { 地图m; 对于(int i=0;i

C++ 在没有使用赋值运算符的情况下,map的值是如何初始化的? #包括 #包括 使用名称空间std; int main() { 地图m; 对于(int i=0;i,c++,C++,如果您查找std::map::operator[] 返回对映射到与键等效的键的值的引用,如果该键不存在,则执行插入 因此,基本上,m[i]将执行插入,如果该键不存在,那么增量将引用新插入的值 它不应该转化为m[i]的值增加1吗 是的。当你做map[key]时,如果key不存在,它会将它添加到map中,值初始化映射到key的值。对于int值初始化意味着零初始化。因此,m[i]为0,并且++将其递增为1可能的重复 #include <iostream> #include <map&

如果您查找
std::map::operator[]

返回对映射到与键等效的键的值的引用,如果该键不存在,则执行插入

因此,基本上,
m[i]
将执行插入,如果该键不存在,那么增量将引用新插入的值

它不应该转化为m[i]的值增加1吗

是的。当你做
map[key]
时,如果
key
不存在,它会将它添加到map中,值初始化映射到key的值。对于
int
值初始化意味着零初始化。因此,
m[i]
0
,并且
++
将其递增为
1

可能的重复
#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];
}