gpt4 book ai didi

c++ - 在结构中初始化std::vector

转载 作者:行者123 更新时间:2023-12-03 07:07:01 25 4
gpt4 key购买 nike

我有一个带有2 std::vector的结构,如下所示。我想用初始值为0.0的2048个元素初始化 vector 。

struct PixelMaps
{
vector<double> pixelMapX;
vector<double> pixelMapY;
};
我尝试了以下代码。这仅创建2个元素的 vector 。如何在带有初始化列表的单个语句中使用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) };

关于c++ - 在结构中初始化std::vector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65036361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com