为c ++创建固定大小的队列

时间:2015-01-28 14:13:13

标签: c++ inheritance

我开发了用于在c ++中创建固定大小队列的代码。我很惊讶如何扩展std :: queue以获得此功能。我查看了其他类似的SO问题,但他们没有给出如何做到这一点的明确例子。是否有任何例子我可以参考如何做到这一点。感谢

template<typename T>
class fixed_size_queue: public std::queue<T>
{
    public:
            fixed_size_queue(unsigned int size);    


};

void fixed_size_queue::fixed_size_queue(unsigned int size)
{
    this->size()= size;


}

2 个答案:

答案 0 :(得分:2)

您不应该扩展标准容器,因为它非常不安全。更好的解决方案是创建自己的类,并使用std::queue作为类成员以及您的类所需的任何内部限制。

答案 1 :(得分:0)

这是您可以将队列扩展为固定大小的方法。

ajax._defaultHeaders = {};

function isObject(obj) { return Object(obj) === obj; };

ajax.set = (function (field, value) {
   if (isObject(field)) {
      for(var key in field) this.set(key, field[key]);
      return this;
   }
   this._defaultHeaders[field] = value;
   return this;
}).bind(ajax)