저는 Core Duo가 설치된 Windows 7을 실행하고 있습니다. 나는 잠시 동안 Codeblocks를 사용 해왔다. 나는 GNU 컴파일러를 사용하고 있다고 생각한다.구성 요소 용 데이터 풀 구성
추상 클래스 Component
에서 상속 한 많은 구성 요소 클래스가 있습니다 (또는 가질 수 있습니다). 나는 미정의 분량의 구성 요소 유형에 대해 메모리 풀을 저장하는 시스템을 구축하는 데 도움이 필요합니다. 각각 미정의 분량의 구성 요소가 있습니다. 인수를 위해서 아마도 후자가 고정되어 있기 때문에, 나는 절대적으로 필요한 때 크기를 어떻게 바꿀 수 있는지를 알아낼 수 있습니다.
또한 편리하게 각 구성 요소 유형은 0에서부터 아무런 구멍이없는 ID (unsigned short
)를 갖습니다. 예!
그래서 배열 크기와 사물을 추적 할 관리 클라우드가 있다고 가정하면이 작업과 같은 것이 좋을까요?
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);
아마도 Params에 대해 sizeof(FooComponent)
을 입력하십시오. 함수 내에서 (난 정말 어떻게 해야할지에 시작) 다음
내가이 같은 메모리를 할당 경험이없는 malloc(START_COUNT * component_size)
을한다. 나는 쉽게
vector< vector<Component*>* >
또는
map<unsigned short, vector<Component*> >
뭔가를 설정할 수 있지만, 그것은 나에게 연속 풀을 제공하지 않습니다 (하나 추한입니다). 캐시가 필요합니다. :)
아이디어가 있으십니까? 패턴? 관용구? 도움?
어떤 하드웨어 및 플랫폼을 타겟팅합니까? –