STL學習 入門(1) stack

2021-07-04 19:38:31 字數 1380 閱讀 7907

#include<

stack

>:

// 

template

<

classt,

class

container

=deque

<

t>

>

class

stack

;

棧(stack)是乙個容器介面卡(container adaptor)型別,被特別設計用來執行於lifo(last-in first-out)場景,在該場景中,只能從容器末尾新增(insert)或提取(extract)元素。

滿足上述條件的標準容器有

std::vector

、std::deque

及 std::list

,如果未特別指定 stack 的底層容器,標準容器 std::deque 將被使用。

any sequence container supporting operations back(), push_back() and pop_back() can be used to instantiate stack. in particular, vector, list  and deque can be used.

成員型別

定義value_type

第乙個模板引數 t

container_type

第二個模板引數 container

size_type

container::size_type

reference

container::reference

const_reference

container::const_reference

(constructor)

建立 stack

(destructor)

釋放 stack

operator=

賦值操作

element access:

top訪問頂部元素

capacity:

empty

判斷是否為空

size

返回有效元素個數

modifiers:

push

在容器頂部插入元素

pop移除容器頂部的元素

emplace

c++11

在容器頂部放置插入元素

swap

交換容器的內容

operator==、operator!=、operator<、operator<=、operator>、operator>= 

關係操作符

std::swap

交換兩個棧的內容

STL略談 1 stack實現

最近幾天在看 stl原始碼,個人感覺如果不自己實現下 stl簡單的架構是很難對 stl有乙個比較系統的了解。所以在閱讀的同時,自己也開始寫寫原始碼。一開始從 list 容器入手,因為之前對 list 有一定的了解,實現起來也比較輕鬆。但是涉及到迭代器等資料結構的時候,很難將其與 list 聯絡起來。...

C 容器簡介1 stack

引用鏈結stack是一種容器介面卡 stl的容器分為順序容器和關聯容器,容器介面卡 被設計來用於操作先進後出 filo 結構的情景,在這種情況下,元素的插入和刪除都只能在容器的尾部進行。stack通過容器介面卡來實現,是一種將特定的容器類作為其最底層的容器的類,它提供了一些特定的成員函式來訪問自己的...

我的C 實踐 1 Stack的實現

1 基本的stack 以std deque為內部容器。方法有入棧 出棧 返回棧頂元 判斷棧空。測試程式 2 改進1 指定棧的容量,要用到非型別模板引數。由於棧的容量固定,可以用陣列來存放元素。測試程式 3 改進2 可以指定棧內部使用的容器,還可以使 不同型別的棧之間能賦值。要用到模板模板引數。要定義...