C++标准库类模板(stack)和 队列(queue)

时间:2021-09-15 03:50:44

在C++标准库(STL)中有栈和队列的类模板,因此可以直接使用

1、栈(stack):使用栈之前,要先包含头文件 : #include<stack>

stack.push(elem);   //往栈头添加元素
stack.pop();   //从栈头移除第一个元素
stack.top();       //返回栈顶元素
stack.empty();   //判断堆栈是否为空,栈空返回true,栈非空返回false
stack.size();        //返回堆栈的大小

例:

#include <iostream>
#include <stack>
using namespace std;
int main(){

	stack<int> stack;
	int num;

	cout<<"入栈:"; 

	for(int i = 1;i<10;i++){
		cout<<i<<" ";
		stack.push(i);
	}

	stack.empty()?cout<<endl<<"当前栈空":cout<<endl<<"当前栈非空";
	cout<<endl<<"栈内元素数:"<<stack.size()<<endl;
	cout<<"出栈:";

	while(!stack.empty())
	{
		cout<<stack.top()<<" ";
		stack.pop();
	}

	stack.empty()?cout<<endl<<"当前栈空":cout<<endl<<"当前栈非空"; 

	return 0;
}

2、队列(queue):使用队列,要先包含头文件 : #include<queue>

queue.push(elem)           //把元素压入队列尾部

queue.pop()                //删除队首元素,但不返回

queue.front()              //返回队首元素,但不删除

queue.back()               //返回队尾元素,但不删除

queue.size()               //返回队列中元素的个数

queue.empty()              //检查队列是否为空,如果为空返回true,否则返回false

例:

#include <iostream>
#include <queue>
using namespace std;
int main(){

	queue<int> queue;
	int num;

	cout<<"入队:"; 

	for(int i = 1;i<10;i++){

		queue.push(i);
		cout<<queue.back()<<" ";
	}

	queue.empty()?cout<<endl<<"当前队列空":cout<<endl<<"当前队列非空";
	cout<<endl<<"队列内元素数:"<<queue.size()<<endl;
	cout<<"出队:";

	while(!queue.empty())
	{
		cout<<queue.front()<<" ";
		queue.pop();
	}

	queue.empty()?cout<<endl<<"当前队列空":cout<<endl<<"当前队列非空"; 

	return 0;
}