在结构中初始化std :: vector

马努

我有一个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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用包含std :: thread的std :: vector的结构类型正确初始化std :: vector

初始化std :: string的std :: vector

C++ - 构造函数中的 std::vector 初始化

在统一初始化中初始化vector <std :: string>

在构造函数初始化列表中初始化std :: vector数组

如何默认初始化std :: vector

std :: vector初始化的模板参数

std :: vector类成员的初始化

高效的std :: vector的直接初始化

如何在c ++ 11中初始化std :: vector <std :: string>的静态constexpr成员?

消除std :: vector <std :: string>的列表初始化的歧义

使用std :: vector进行std :: array初始化

使用std :: vector的std :: map初始化

如何初始化std :: map项目的std :: vector?

为什么C ++会用零初始化std :: vector而不初始化std :: array?

在 C++ 中的 std::vector 中初始化大小值时出错

VHDL-十六进制文件中的初始化std_logic_vector数组

我可以从实例列表中初始化std :: vector <T *>吗?

如何在C ++ 11中初始化std :: vector的值列表?

如何在VHDL中初始化std_logic_vector?

最烦人的解析会阻止类中初始化std :: vector <int>

是否可以在一行中初始化新的 std::vector?

如何从C样式数组初始化std :: vector?

如何从std :: vector <>正确初始化向量

std :: pair <vector <int>,double>的初始化列表

初始化二维std :: vector

如何初始化const std :: vector <MyClass>

使用范围库初始化std :: vector

初始化std :: vector <double>时出现分段错误