我有一个2std::vector
秒的结构,如下所示。我想用初始值为0.0的2048个元素初始化向量。
struct PixelMaps
{
vector<double> pixelMapX;
vector<double> pixelMapY;
};
我尝试了以下代码。这仅创建2个元素的向量。如何在带有初始化列表的单个语句中使用2048个元素初始化结构?
PixelMaps test{ {2048,0.0}, {2048, 0.0} };
std::vector
有一个使用的构造函数std::initializer_list
,因此您不能使用brace-init-list-它始终会以该构造函数结尾。您需要更明确的初始化:
PixelMaps test{ std::vector(2048,0.0), std::vector(2048, 0.0) };
或(C ++ 17之前的版本)
PixelMaps test{ std::vector<double>(2048,0.0), std::vector<double>(2048, 0.0) };
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句