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 ++标准所要求的。
答案 0 :(得分:13)
是的,这是必需的行为。对于任何数字类型T()
,T
会产生0
(当然,类型为T
)。
这称为值初始化,对于数值类型,它与零初始化相同。