C++ 是否可以/建议在结构中存储向量?C++;

C++ 是否可以/建议在结构中存储向量?C++;,c++,vector,struct,C++,Vector,Struct,我一直认为结构是一个固定大小的对象,虽然似乎没有任何明显的编译器错误,但我想知道这样做是否通常是一种好的做法。将结构更改为类是更可取的还是结构也可以 代码,只是因为人们变得挑剔: struct Sprite { float x; float y; std::vector<Sprite> sprite; } struct-Sprite { 浮动x; 浮动y; 矢量精灵; } 我所做的本质是让一个类的子类与父类具有相同的类型。当父对象死亡时,子对象也会死亡。一

我一直认为结构是一个固定大小的对象,虽然似乎没有任何明显的编译器错误,但我想知道这样做是否通常是一种好的做法。将结构更改为类是更可取的还是结构也可以

代码,只是因为人们变得挑剔:

struct Sprite
{
    float x;
    float y;
    std::vector<Sprite> sprite;
}
struct-Sprite
{
浮动x;
浮动y;
矢量精灵;
}

我所做的本质是让一个类的子类与父类具有相同的类型。当父对象死亡时,子对象也会死亡。

一个
std::vector
有一个特定的已知大小,包含它的任何类或结构都有一个特定的已知大小
std::vector
在堆上分配内存作为可变大小的数组,并存储指向所述内存的指针。结构和类之间唯一的区别是结构默认为公共,类默认为私有。

结构和类之间的区别与成员可见性有关:
struct
的成员默认为公共,而且默认情况下,
struct
的继承是公共的<默认情况下,code>class成员和
class
继承都是私有的。除此之外,没有区别:您可以始终使用
struct
编写代码,该结构生成的代码与使用
class
编写的代码相同,反之亦然。

A
struct
只是一个默认可见性为
public
的类,而不是
private
。请注意,向结构中添加具有构造函数/析构函数的成员会使编译器也为该结构发出构造函数/析构函数。暗示POD结构的C风格技术不会起作用。在结构中存储向量不会使其改变大小。Vector的项存储在堆上,因此结构的大小保持不变,无论Vector包含0或1000个元素。谢谢。这显然是有道理的,向量只能作为指向堆中内存的指针。谢谢你的详细答复。