stack是一種容器適配器,專門設計用於在LIFO上下文中操作(后進先出),其中元素僅從容器的一端插入和刪除。
容器適配器,而不是一種容器。
它是容器適配器是指,只要支持一系列方法的容器(empty, size, back, push_back, pop_back),都能作為stack使用。
stack 有可能實際上是一個 vector, deque 或 list. 如果沒有特殊指明,將使用 deque作為stack的實際容器。
成員函數
empty()
測試棧是否為空,為空返回true,否則返回false。
bool empty() const;
size()
返回棧中元素的個數
size_type size() const;
top()
返回棧頂元素(最后push進來的那個)的引用。
referenc& top();
push(val)
壓一個值到棧中,其值將被初始化為 val
void push(const value_type& val);
pop()
將棧頂元素彈出,注意這個函數無返回值,如果需要獲取棧頂元素,應先調用top(),再pop()
swap()
swap將兩個 stack的內容交換。這兩個 stack的模板參數 T和 Container必須都相同。
void swap(stack& x) 重載1:x.swap(y)
void swap(stack& x, stack& y) 重載2: swap(x, y)
