C++STL中队列与栈的用法
一、队列
基本操作:
代码示例:
#include<iostream>
#include<queue>//头文件
using namespace std;
int main()
{
queue<int>q;
for(int i=1;i<=5;i++)
q.push(i);//i依次入队
cout<<q.front()<<endl;//显示队首元素
cout<<q.back()<<endl;//显示队尾元素
q.pop();//删除队首元素
cout<<q.size()<<endl;//队列长度
while(!q.empty())
{
cout<<q.front()<<' ';
q.pop();
}
cout<<endl;
return 0;
}
结果:
二、优先队列
优先队列不同于队列的就是每push一个元素便会自动对所有队列里的元素按一定顺序排序。
基本操作:
代码示例:
#include<iostream>
#include<queue>//头文件
using namespace std;
int main()
{
priority_queue<int>p1;//默认为从大到小排序
priority_queue<int,vector<int>,less<int> >p2;//从大到小排序
priority_queue<int,vector<int>,greater<int> >p3;//从小到大排序
for(int i=1; i<=5; i++)
{
p1.push(i);
p2.push(i);
p3.push(i);
}
cout<<"p1: ";
while(!p1.empty())
{
cout<<p1.top()<<' ';
p1.pop();
}
cout<<endl;
cout<<"p2: ";
while(!p2.empty())
{
cout<<p2.top()<<' ';
p2.pop();
}
cout<<endl;
cout<<"p3: ";
while(!p3.empty())
{
cout<<p3.top()<<' ';
p3.pop();
}
cout<<endl;
return 0;
}
结果:
三、栈
基本操作:
代码示例:
#include<iostream>
#include<stack>//头文件
using namespace std;
int main()
{
stack<int>s;
for(int i=1;i<=5;i++)
s.push(i);//i入栈
cout<<s.top()<<endl;//栈顶元素
s.pop();//删除栈顶元素
cout<<s.size()<<endl;//栈中元素的个数
while(!s.empty())
{
cout<<s.top()<<' ';
s.pop();
}
cout<<endl;
return 0;
}
结果:
永远相信美好🎈