c++ - Creating number pools -
i created simple container class, holds number pool of unique numbers. returns number pool before container destroyed.
//pooled.hpp #pragma once #include <queue> class pooled { public: pooled(); ~pooled(); //edit: disable copy , copy assignment here const int number; private: int getnumber(); static std::queue<int> pool; static int currentsize; }; and
//pooled.cpp #include "pooled.hpp" std::queue<int> pooled::pool; int pooled::currentsize = 1; pooled::pooled() : number(getnumber()) {} pooled::~pooled() { pool.push(number); } int pooled::getnumber() { if (pool.empty()) { pool.push(currentsize); currentsize++; } int newnumber = pool.front(); pool.pop(); return newnumber; } but let's wanted create multiple pools of numbers. define arbitrary number of std::queue<int>s somewhere, have every pooled object hold reference specific one. doubles size of every pooled object.
or create class every pool need, pooled1, pooled2 sounds quite dumb, keeps each object small. there way accomplish both goals?
Comments
Post a Comment