【发布时间】:2013-08-03 11:57:30
【问题描述】:
问题
假设我们有一个struct,例如:
struct MyStruct
{
enum Type { NONE, TYPE1, TYPE2 };
Type type;
int value;
}
现在,应用程序需要将未定义数量的这些结构存储在一个数组或类似结构中。 问题是:在内存使用、速度、优雅等方面,哪种方法是最好的?
一些注意事项
-
要有一个固定长度的数组,其长度你知道不会被超越:
MyStruct myStructArray[200];我想这会导致更多的内存使用,因为它会为传入的结构实例保留空间。
拥有一些可自动调整大小的数组机制,例如
vector<MyStruct>自行管理内存。将指向每个
struct的指针存储在某个数组或vector中。
【问题讨论】:
-
2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.
-
我个人使用 3,从来没有遇到过任何问题。但是您的结构似乎很小,我认为您不必担心空间。
-
只能同意 jrok,我会使用
std::vector。其他解决方案更更容易出错(溢出/内存管理)。 -
这完全取决于你要用它做什么。有关将为您进行内存管理的不同类型容器的概述:en.cppreference.com/w/cpp/container
-
@JosephPla 好吧,假设这是一个示例通用结构。我正在寻找任何大小结构的通用答案。