关于C++结构中数组的初学者问题

hyp*_*not 1 c++ arrays struct

我想创建一个结构,并将其作为数组在其他结构中使用.我的问题是我不知道我想分配多大的数组,我只会知道我在一个函数中.我的意思是我想用[]而不是预定的常数,比如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)

Pup*_*ppy 5

用一个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)

  • @Mr.:Au逆转!初学者应该从一开始就使用STL类,并在以后使用指针.至少根据Stroustrup先生的说法;-) (4认同)