C ++如何在未知大小的结构中初始化数组
C++ How to initialize array in struct of unknown size
所以我的头文件中有这个结构定义,这个结构里面是另一个结构的数组。我想从一个文件中读取这个数组的大小,但我不知道如何读取。
struct Struct1
{
struct Struct2 sArry[];
};
//And then initialize sArry[] as a size read from file
inFile >> size;
Struct1->sArry[size];
为了关闭问题,我会写答案。
无法在运行时更改数组大小。因此,我看到的两种解决方案是:
使用 vector<Struct2>
而不是 Struct2 sArry[]
。这可能有点低效,但我认为这可能不是您代码的瓶颈。
在编译时设置一个最大大小Struct2 sArry[MAXSIZE]
,随意定义MAXSIZE。这是内存效率低下并且不是很优雅。
注意:C++11 包括 std::array<type, size>
,您应该使用它来代替 C 样式数组。
所以我的头文件中有这个结构定义,这个结构里面是另一个结构的数组。我想从一个文件中读取这个数组的大小,但我不知道如何读取。
struct Struct1
{
struct Struct2 sArry[];
};
//And then initialize sArry[] as a size read from file
inFile >> size;
Struct1->sArry[size];
为了关闭问题,我会写答案。
无法在运行时更改数组大小。因此,我看到的两种解决方案是:
使用
vector<Struct2>
而不是Struct2 sArry[]
。这可能有点低效,但我认为这可能不是您代码的瓶颈。在编译时设置一个最大大小
Struct2 sArry[MAXSIZE]
,随意定义MAXSIZE。这是内存效率低下并且不是很优雅。
注意:C++11 包括 std::array<type, size>
,您应该使用它来代替 C 样式数组。