C ++ std :: map内推类型初始化使用[]运算符

时间:2011-08-04 23:56:02

标签: c++ stl stdmap

什么标题,假设我有这样的地图:

std::map<int, int> m;

如果我写下面的

cout<<m[4];
  • 结果是什么(0,未初始化,特定于编译器)?
  • 这同样适用于指针(即std :: map)吗?

修改
为了澄清,在这个问题中,我正在寻求标准行为。

提前致谢, CEM

1 个答案:

答案 0 :(得分:3)

该值将是该类型的默认构造函数创建的值,因为使用T()填充了新的点。对于int,这是0。你可以自己看看:

#include <iostream>

using namespace std;

int main() {
    cout << int() << endl; // prints 0
}

初始化类似空括号的类型称为值初始化(请参阅下面的ildjarn评论)。

相关问题