最近搞性能优化,常用的套路之一,就是能用数组替代STL容器,但是有与STL相同的接口
从开源库里找,估计能找到不少,但是自己现实一个也很快。
template<class T, int N>
class MyFixedSizeQueueBase
{
protected:
T m_arr[N];
int m_iElementNum;
int m_iFirst;
int m_iLast;
public:
MyFixedSizeQueueBase()
{
clear();
}
void clear()
{
m_iElementNum = 0;
m_iFirst = 0;
m_iLast = 0;
}
//不停的push导致溢出的问题,这里不处理// 丢掉新的 还是丢掉旧的 可继承一个新的类
void push(const T & node)
{
assert(m_iElementNum < N);
m_arr[m_iLast] = node;
++m_iLast;
if (m