c++ - 如何在 C++ 中初始化结构数组?

标签 c++ arrays struct initialization

我的 C++ 代码中有以下 struct(我使用的是 Visual Studio 2010):

struct mydata
{
    string scientist;
    double value;
};

我想做的是能够快速初始化它们,类似于 C99 中的数组初始化或 C# 中的类初始化,á la:

mydata data[] = { { scientist = "Archimedes", value = 2.12 }, 
                  { scientist = "Vitruvius", value = 4.49 } } ;

如果在 C++ 中这对于结构数组是不可能的,我可以为对象数组执行此操作吗?换句话说,数组的底层数据类型并不那么重要,重要的是我有一个数组,而不是一个列表,并且我可以用这种方式编写初始化程序。

最佳答案

C++ 中的语法几乎完全相同(只是省略了命名参数):

mydata data[] = { { "Archimedes", 2.12 }, 
                  { "Vitruvius", 4.49 } } ;

在 C++03 中,只要数组类型是 aggregate 就可以使用。 .在 C++11 中,这适用于任何具有适当构造函数的对象。

关于c++ - 如何在 C++ 中初始化结构数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8534526/

相关文章:

c - 使用结构体组织输入 - C 编程

json - 如何将 NullTime 格式化为人类可读的格式,如 HH :MM:SS

java - 当我从 native Java 方法抛出 C++ 异常时会发生什么?

c++ - std::remove() 按预期使用文字,但不适用于取消引用的迭代器

java - 为此我需要单个循环还是嵌套循环?

c - 多维数组越界访问

谁能帮我用C语言创建一个共享内存段

c++ - 大数求和

C++ Visual Studio : Uninitialized local variable 'response' used

python - Python Numpy 数组声明何时没有参数?