栈(stack)和队列(queue)是保存时间先后次序的两种简便方案。
栈(Stack)的规则:后进先出LIFO
入栈push(),出栈pop(),使用前需要包含头文件stack
队列(Queue)的规则:先进先出FIFO
入队push(),出队pop(),使用前包含头文件queue
具体区别请看下面的例程(代码可运行):
// stack_queue.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#include "pch.h"
#include <iostream>
#include<stack>
#include<queue>
using namespace std;
int main()
{
stack<int> S;
S.push(1);//入栈
S.push(2);
S.push(3);
cout <<"栈顶元素为:"<< S.top() << endl;
S.pop();//出栈
cout << "出栈后栈顶元素为:" << S.top() << endl;
S.pop();
cout << "继续出栈后栈顶元素为:" << S.top() << endl;
queue<int> Q;
Q.push(1);//入队
Q.push(2);
Q.push(3);
cout << "队首元素为:" << Q.front() << endl;
Q.pop();//出队
cout << "出队后队首元素为:" << Q.front() << endl;
Q.pop();
cout << "继续出队后队首元素为:" << Q.front() << endl;
}
运行结果:
进栈顺序是1,2,3.
出栈的顺序是3,2,1;
规则:栈后进先出。
进队顺序是1,2,3.
出队的顺序是1,2,3;
规则:队列先进先出。
上面的运行结果可以帮助我们理解栈后进先出(LIFO),队列先进先出(FIFO)的规则。
希望对你有帮助。