C ++队列模板STL

时间:2011-11-30 03:26:14

标签: c++ templates queue

我有默认构造函数但复制构造函数我遇到了问题。任何帮助。

enum Direction { front_to_back, back_to_front };

template <typename EType>
class Queue
{
  private:

    struct Node
    {
      EType Item;
      unsigned Priority;
      unsigned Identifier;
      Node * Pred;
      Node * Succ;
    };

    Node * Head;    // Pointer to head of chain (front)
    Node * Tail;    // Pointer to tail of chain (back)

  public:

    // Initialize pqueue to empty
    //
    Queue();

    // De-initialize pqueue
    //
    ~Queue();

    // Re-initialize pqueue to empty
    //
    void reset();

    // Initialize pqueue using existing pqueue

1 个答案:

答案 0 :(得分:2)

由于您正在使用原始指针,因此您需要禁用复制构造和分配以避免双重删除问题和内存泄漏。这可以通过以下方式完成:

private: // note that these are not implemented

    Queue( const Queue& );
    Queue& operator=( const Queue& );

或继承自boost::noncopyable