queue.h

来自「侯捷翻译的c++ primer随书的源代码,一起学c」· C头文件 代码 · 共 54 行

H
54
字号
#ifndef QUEUE_H
#define QUEUE_H

#include <iostream>
using std::cerr;
using std::ostream;

#include <cstdlib>
using std::exit;

// declaration of QueueItem
template <class T> class QueueItem;

template <class Type>
class Queue {
public:
        Queue() : front( 0 ), back ( 0 ) { }
        ~Queue();

        Type remove();
        void add( const Type & );
        bool is_empty() const {
                return front == 0;
        }

	friend ostream& operator<<( ostream &, const Queue<Type> & );

	template <class Iter> void assign( Iter first, Iter last );
private:
        QueueItem<Type> *front;
        QueueItem<Type> *back;
};

template <class Type>
class QueueItem {
public:
	QueueItem( const Type &t )
                 : item(t), next(0) { }

	friend class Queue<Type>;
	friend ostream& operator<<( ostream &, const QueueItem<Type> & );
private:
        Type item;
        QueueItem *next;

	void *operator new( size_t );
        void operator delete( void *, size_t );

        static QueueItem *free_list;
        static const unsigned QueueItem_chunk;
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?