1. 程式人生 > >STL常用容器總結——stack棧

STL常用容器總結——stack棧

原文

棧中的資料是先進後出(FILO),棧只有一個出口,新增和移除元素都只能在棧頂操作。在STL中,棧是以別的容器作為底部結構,修改介面使其符合棧的特性。預設情況下,棧使用deque作為其底層資料結構,也可以指定使用vector或list等。

棧常用的函式有:

1.資料操作

stk.top()

返回棧頂資料的引用

stk.push(elem)

在棧頂新增資料

stk.pop()

彈出棧頂資料

2.其他操作‘

stk.empty()

判斷棧是否為空,若空返回true,否則返回false。

stk.size()

返回棧中資料的個數。

stack棧例子:

#include <iostream>
#include <stack>
#include <vector>
using std::stack;
using std::vector;
int main()
{
	stack<int> stk;//預設使用deque作為底層資料結構
	stack<int, vector<int> > stkv;//指定vector為底層資料結構
	for (int i = 0; i < 10; ++i)
	{
		stk.push(i*i);
		stkv.push(i);
	}
	std::cout << "棧stk的資料:\n";
	while (!stk.empty())
	{
		std::cout << stk.top()<<" ";
		stk.pop();
	}
	std::cout << "\n\n棧stkv的資料:\n";
	while (!stkv.empty())
	{
		std::cout << stkv.top() << " ";
		stkv.pop();
	}
	std::cout << "\n\n棧stk的大小:\n"<<stk.size();
	std::cout << "\n\n棧stkv的大小:\n" << stkv.size() << "\n\n";
	system("pause");
	return 0;
}