C ++标准:类型'int'的向量构造函数中的默认“const T& value”

时间:2011-08-09 20:21:55

标签: c++ stl

explicit vector ( size_type n, const T& value= T(), const Allocator& = Allocator() );

vector<int> vec(10);
cout << "vec.size: " << vec.size() << endl;
for (vector<int>::const_iterator iter=vec.begin(); iter != vec.end(); ++iter)
{
    cout << *iter << endl;
}

VS2010的输出:

vec.size: 10
0
0
0
0
0
0
0
0
0
0

问题计算值: 基于最新的C ++标准,当我们使用vectorObject(size_type)定义向量对象时,默认的int值是什么?

如您所见,VS2010输出0作为默认的int值。但我不知道这是否是C ++标准所要求的。

1 个答案:

答案 0 :(得分:13)

是的,这是必需的行为。对于任何数字类型T()T会产生0(当然,类型为T)。

这称为值初始化,对于数值类型,它与零初始化相同。