/* * queue_2.cpp * * Created on: 2013年8月2日 * Author: 黄东东 * 为了能有章泽天这样的女朋友而不断努力。。。。。 * fighting。。。。。。。 */ #include <iostream> typedef int T; using namespace std; class Queue { int a[5]; int b;//队首元素 int n;//有效元素个数 public: Queue() : b(0), n(0) { } Queue& push(const T& d) { if (full()) { throw "满"; } a[(b + n++) % 5] = d; return *this; } T pop() { if (empty()) { throw "空"; } --n; return a[b++ % 5]; } const T& front() { return a[b % 5]; } const T& back() { return a[(b + n - 1) % 5]; } bool empty() { return n == 0; } bool full() { return n == 5; } int size() { return n; } void clear() { b = 0; n = 0; } }; int main() { Queue q; try { q.push(1).push(2).push(3).push(4).push(5); cout << q.pop() << endl; cout << q.pop() << endl; q.push(6).push(7).push(8); } catch (const char* e) { cout << "异常:" << e << endl; } while (!q.empty()) { cout << q.pop() << endl; } }