为了节省空间是否可以把一个比较大的结构宣言成一个vector, 这样只是在使用的时候才给他追加成员。
这样做是否合乎常规?比如:
已经定义了
struct POINTa
{
int x[100];
int y[100];
}
之后struct MyStruct
{
POINTa pt;
int name;
}
和
struct MyStruct
{
vector<POINTa> pt;
}
那一种写法个有效率?更加合理?
这样做是否合乎常规?比如:
已经定义了
struct POINTa
{
int x[100];
int y[100];
}
之后struct MyStruct
{
POINTa pt;
int name;
}
和
struct MyStruct
{
vector<POINTa> pt;
}
那一种写法个有效率?更加合理?
struct MyStruct
{
vector<POINTa> pt;
int name
};
吧?后者有点相当于使用时new,当然可以节约一些空间。
我该听那一位的,说明一下;
我这样做的意义是,在实际操作的时候,当这个结构当 name = 0;的时候,该vector将不被赋值,内容可以为空、我想通过vector来节省空间,是否可行?
{
vector<POINTa*> pt;
int name
};需要时new一个放进去,平时只存放一个指针的地址,这个应该是最节省的方法了
单纯空间来说,未必比指定空间要节省.
已经定义了
struct POINTa
{
int x[100];
int y[100];
}
之后struct MyStruct
{
POINTa pt;
int name;
}
和
struct MyStruct
{
vector<POINTa> pt;
}
那一种写法个有效率?更加合理?如果只有一个成员,用vector似乎是有点杀鸡用牛刀的感觉,这种情况下,我觉得用指针更好:
struct MyStruct
{
POINTa *ppt;
}
反正在C++中结构也可以有成员函数和构造析构函数,把释放内存的工作交给析构函数好了