[STL基础]栈、队列、优先队列之用法

栈、队列、优先队列

栈stack    网上实例

队列queue    网上实例

优先队列priority_queue   网上实例

#include 
#include 
#include  
#include 
#include
using namespace std;   
//栈stack的用法
void test0()
{
	stack st; 
	for (int i=0;i<4;i++)
		st.push(i*10); //压栈
	cout< first,scond;
	for (int i=0;i<5;i++)
	{
		first.push(i*5);
		scond.push(i*2);
	}
	first.swap(scond);//将栈first与scond元素互换
	first.emplace(444); //安放 它与push()的功能相同
	scond.emplace(852);

	while (!first.empty())
	{
		cout< q;
	for(int i=0;i<5;i++)
		q.push(i);//在队尾增加元素
	//返回元素数目,返回队头元素,返回队尾元素,是否为空
	cout< first,scond;
	for (int i=0;i<5;i++)
	{
		first.push(i*5);
		scond.push(i*2);
	}
	first.swap(scond);//将队列first与scond元素互换
	first.emplace(444); //安放 它与push()的功能相同
	scond.emplace(852);

	while (!first.empty())
	{
		cout<pq;
	pq.push(34);
	pq.push(21);
	pq.push(45);
	pq.push(9);
	//返回元素数目,返回队头元素,返回队尾元素,是否为空
	cout< first,scond;
	for (int i=0;i<5;i++)
	{
		first.push(i*5);
		scond.push(i*2);
	}
	first.swap(scond);//将优先队列first与scond元素互换
	first.emplace(444); //安放 它与push()的功能相同
	scond.emplace(852);

	while (!first.empty())
	{
		cout<

容器适配器

容器适配器:是用基本的容器改造出的容器。共有的成员函数:empty(),size(),push(),pop(),(front(),back()/top()),swap(),emplace()

  • 栈stack:是先进后出(FILO)的数据结构,可用vector,list,deque来实现,默认用deque实现。只能插入push(),删除pop(),访问栈顶元素top()
  • 队列queue:是先进先出(FIFO)的数据结构,可用list,deque来实现,默认用deque实现。也提供了push(),pop()但是push()发生在队尾,pop()发生在队头与stack不同的是top()变成了(front(),back())返回队头元素front(),返回队尾元素back(),
  • 优先队列priority_queue:可用vector,deque实现,默认用vector实现。插入到容器中的元素自动排序(从大到小),这些元素是有优先级的,大的在前小的在后,与queue不同的是由front(),back()变成一个top()

你可能感兴趣的:(STL-编程)