Ale*_*kin 31 c++ arrays struct initialization
我的structC++代码中有以下内容(我使用的是Visual Studio 2010):
struct mydata
{
string scientist;
double value;
};
Run Code Online (Sandbox Code Playgroud)
我想这样做是为了能够初始化它们以快速的方式,类似于C99或类初始化数组初始化在C#中,东西一拉:
mydata data[] = { { scientist = "Archimedes", value = 2.12 },
{ scientist = "Vitruvius", value = 4.49 } } ;
Run Code Online (Sandbox Code Playgroud)
如果在C++中对于结构数组不可能这样做,我可以为一个对象数组做吗?换句话说,数组的基础数据类型并不重要,重要的是我有一个数组,而不是一个列表,并且我可以用这种方式编写初始化器.
Bjö*_*lex 53
C++中的语法几乎完全相同(只是省略了命名参数):
mydata data[] = { { "Archimedes", 2.12 },
{ "Vitruvius", 4.49 } } ;
Run Code Online (Sandbox Code Playgroud)
在C++ 03中,只要数组类型是聚合,这就有效.在C++ 11中,这适用于具有适当构造函数的任何对象.