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