stack 基本概念
- stack 是一种先进后出(FILO)的数据结构,它只有一个出口
- stack 不允许有遍历行为

stack 构造函数
stack<T> s;
stack<T> s( const stack& st );
stack 赋值操作
stack& operator=( const stack& st );
stack 数据存取
void push( elem )
void pop()
T& top();
大小操作
bool empty();
int size();
void stack_example() { stack<int> s; s.push(10); s.push(20); s.push(30); s.push(40); cout << "栈的大小:" << s.size() << endl; while (!s.empty()) { cout << "栈顶元素为:" << s.top() << endl; s.pop(); } cout << "栈的大小:" << s.size() << endl; }
queue 基本概念
- queue 是一种先进先出(FIFO)的数据结构,有两个出口
- queue 允许从一端新增元素,从另一端移除元素
- queue 只有队头和队尾才可以被外界使用
- queue 不允许遍历

queue 构造函数
queue<T> q;
queue<T> q( const queue& que );
queue 赋值操作
queue& operator=( const queue& que );
queue 数据存取
void push( elem )
void pop()
T& front();
T& back();
大小操作
bool empty();
int size();
void queue_example() { queue<Person> q; Person p1("唐僧", 30); Person p2("孙悟空", 1000); Person p3("猪八戒", 900); Person p4("沙僧", 800); q.push(p1); q.push(p2); q.push(p3); q.push(p4); cout << "队列大小为:" << q.size() << endl; while (!q.empty()) { cout << "对头元素 --- 姓名:" << q.front().m_name << " 年龄:" << q.front().m_age << endl; cout << "对尾元素 --- 姓名:" << q.back().m_name << " 年龄:" << q.back().m_age << endl; q.pop(); } cout << "队列大小为:" << q.size() << endl; }