我正在运行带有 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*> >
但它(对于一个人来说很难看)并没有给我连续的游泳池。我需要缓存友好:)
想法?模式?成语?帮助?