我正在阅读编程原则和实践C,并且遇到了以下一段代码,我认为这些代码没有得到很好的解释
struct Day {
vector<double> hour{vector<double>(24,-777) };
};
这里发生了什么?当我需要一个具有默认值的特定长度的向量时,我通常会使用此初始值设定项:
vector<double> hour(24, -777);
但是,这种初始化方式在struct中不起作用,
struct Day {
vector<double> hour(24, -777);
};
导致编译错误
Error (active) expected a type specifier HelloWorld d:\Visual Studio 2015\HelloWorld\HelloWorld\HelloWorld.cpp 11
Error (active) expected a type specifier HelloWorld d:\Visual Studio 2015\HelloWorld\HelloWorld\HelloWorld.cpp 11
Error C2059 syntax error: 'constant' HelloWorld d:\visual studio 2015\helloworld\helloworld\helloworld.cpp 11
寻找初始化者背后的解释.
我正在使用MS Visual Studio 2015
最佳答案
vector<double>(24,-777)
这将创建一个临时的std :: vector,其值为-777.
然后使用移动构造函数使用临时构造小时向量.