c++ - 初始化一个包含 vector 的结构

标签 c++ struct

我正在寻找一种方法来初始化在单行中包含 vector 的复杂结构。

例如,如果我有这个结构:

struct A{
  double x;
  double y;
};
struct B{
  double z;
  double W;
};
struct C{
  A a;
  B b;
};

我可以这样初始化 C:C c = {{0.0,0.1},{1.0,1.1}};

但是如果我必须像这样初始化一个结构怎么办?

struct A{
  double x;
  double y;
};
struct B{
  vector<double> values;
};
struct C{
  A a;
  B b;
};

我必须在一行中完成,因为我想让我的应用程序的用户在一个字段中指定所有初始值。当然,我更喜欢使用标准方法而不是自定义方法。

谢谢!

最佳答案

您可以在 C++ 中以与在 C 中非常相似的方式初始化 C:

C c = {{0.3, 0.01}, {{14.2, 18.1, 0.0, 3.2}}};

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

相关文章:

c++ - 如何生成n位随机数?

c++ - 通过循环 std::map 调用类方法

c - 使用结构和指针数组时出错 : incompatible types in assignment

c - 无法正确地将十六进制字节打包到无符号字符数组或指针中

c - 结构声明中的指针与局部变量

c++ - 为什么我的 C++/QT 应用程序在 Linux x86_64 上的 nanosleep() 中崩溃?

c++ - 0x00051526处未处理的异常读取位置0x00000004时访问冲突

计算 1 到 20 之间数字的 lcm 的 C++ 程序(欧拉项目)

c - 结构字段中的 strcpy/strncpy 段错误

c++ - 使用 typedef 时可以重命名成员吗?