1. 程式人生 > >C++ STL Stack 快速入門

C++ STL Stack 快速入門

1、STACK

相對來說,STACK是一個比較簡單的容器,它的使用也比較簡單。

STACK是LIFO容器,就是後進先出。最後新增進去的元素,第一個取出來。

2、STACK常用方法

template stack<class T,class Container = deque<T>> class stack

其中T 為型別,container為儲存和訪問元素的型別

empty();//判斷是否為空

push(class T);//棧頂壓入一元素

pop();//彈出棧頂元素

top();//返回棧頂元素

size();//返回棧中元素個數

3 、示例程式碼

#include "stdafx.h"
#include <stack>
#include <vector>
#include <deque>
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
	stack<int> stackWithDefaultContainer;
	stack<int,vector<int>> stackWithVectorContainer;
	stack<int,deque<int>> stackWithDequeContainer;
	stackWithDequeContainer.push(10);
	stackWithDequeContainer.push(11);
	stackWithVectorContainer.push(0);
	stackWithVectorContainer.push(1);
	cout<<"QueueStackSize:"<<stackWithDequeContainer.size()<<endl;
	cout<<"VectorStackSize"<<stackWithVectorContainer.size()<<endl;
	for (int index = 0;index<10;index++)
	{
		stackWithDefaultContainer.push(index);
	}
	cout<<"Start to pop:"<<endl;
	while (!stackWithDefaultContainer.empty())
	{
		int iOnePopData = stackWithDefaultContainer.top();
		cout<<iOnePopData<<" ";
		stackWithDefaultContainer.pop();
	}
	cout<<endl;
	cout<<"End"<<endl;
}

執行結果
<img src="https://img-blog.csdn.net/20140927125619609?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvSGVsbG9fSHdj/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />