0

我正在运行带有 Core Duo 的 Windows 7。我已经使用 Codeblocks 一段时间了,我想我已经使用了 GNU 编译器。

我有(或将有)许多从抽象类继承的组件类Component。我需要帮助建立一个系统来容纳未确定数量的组件类型的内存池,每个类型都有未确定数量的组件。也许为了争论后者是固定的,我可以弄清楚在绝对必要时如何改变大小。

此外,方便的是,每种组件类型都有一个unsigned short从 0 到没有孔的 ID ( )。耶!

所以,假设我有一些管理类来跟踪数组大小和事物,这样的事情会起作用吗?

class Component {};

class FooComponent: public Component {};
class BarComponent: public Component {};
.
.
.

std::vector<Component*> pool_list;

// returns pointer to beginning of pool
Component* foo_pool = MethodToCreateComponentPool(/* Params */)
Component* bar_pool = MethodToCreateComponentPool(/* Params */)

pool_list.push_back(foo_pool);
pool_list.push_back(bar_pool);

或许sizeof(FooComponent)可以加入Params。

然后(我真的开始不知道该怎么做)在函数内部做一个malloc( START_COUNT * component_size)

我没有这样分配内存的经验。我可以轻松地设置类似

vector< vector<Component*>* >或者
map<unsigned short, vector<Component*> >

但它(对于一个人来说很难看)并没有给我连续的游泳池。我需要缓存友好:)

想法?模式?成语?帮助?

4

1 回答 1

0

我全神贯注于如何实现这一点,却忘记了我真正需要什么。基本上就是这个帖子

谢谢。

于 2011-08-20T14:54:40.113 回答