程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> STL中stack小結

STL中stack小結

編輯:C++入門知識

(1)為了運用stack,你必須包含頭文件<stack>:#include<stack>

(2)在頭文件中stack定義如下:
namespace std{
     template <class T, class Container = deque<T> >
     class stack;
}
第一個template參數代表元素型別,帶有默認值的第二個參數用來定義stack內部存放元素所用的實際容器,缺省采用deque。之所以采用deque而非vector,是因為deque移除元素時會釋放內存並且不必在重新分配時復制全部元素。實際上stack只是很單純的把各項操作轉化為內部容器的對應調用,你可以使用任何序列式容器來支持stack,只要它們支持back(),push_back(),pop_back()等動作就行了。

(3)stack的各項操作:
stack::stack()默認構造函數,產生一個空stack

explicit stack::stack(const Container& cont)
產生一個stack,並以容器cont內的元素為初值(復制)

size_type stack::size() const
返回元素個數

bool stack::empty() const
判斷stack是否為空

void stack::push(const value_type& elem)
將elem的副本插入stack使其成為新的第一個元素

value_type& stack::top()
const value_type& stack::top() const
返回stack的棧頂元素,調用者必須確保stack不為空否則可能是未定義的行為

void stack::pop()
移除stack的棧頂元素,調用者必須確保stack不為空否則可能是未定義的行為

bool comparison(const stack& st1, const stack& st2)
返回兩個同型的stack的比較結果comparison可以是下面各個運算之一:operator ==,operator !=,operator <,operator >,operator <=,operator >=

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved