我想创建一个结构,并将其作为数组在其他结构中使用.我的问题是我不知道我想分配多大的数组,我只会知道我在一个函数中.我的意思是我想用[]而不是预定的常数,比如10000.
我想如果你查看我的代码,它将是不言自明的.你能帮我解决一下这段代码的工作原理吗?此外,如果你能告诉我我所询问的主题的名称是什么(它是动态数组吗?)以及我在哪里可以找到关于这个主题的文章/教程,它会对我有所帮助.
这是代码与我在结构中思考数组的方式.
#include <iostream>
using namespace std;
struct keyframe {
bool a;
int b;
int c;
};
struct keyframe_file {
const int num_views;
const int num_keyframes;
keyframe keyframes[];
};
int main() {
keyframe_file my_file;
my_file.num_views = 1;
my_file.num_keyframes = 6;
my_file.keyframes = new keyframe[my_file.num_keyframes];
my_file.keyframes[0].a = true;
my_file.keyframes[0].b = 5;
my_file.keyframes[0].c = 9;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
用一个std::vector.
struct keyframe_file {
const int num_views;
const int num_keyframes;
std::vector<keyframe> keyframes;
};
int main() {
keyframe_file frame;
frame.keyframes.resize(...);
}
Run Code Online (Sandbox Code Playgroud)