⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queue.h

📁 C++ PRIME书中的原代码,看本书时可以学习的例子.
💻 H
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -