C++ 庫 - <stack>



介紹

棧是一種設計用於後進先出 (LIFO) 上下文的資料結構。在棧中,元素的插入和刪除都只在一個端點進行。

棧類是容器介面卡。容器是儲存相同型別資料的物件。棧可以由不同的順序容器建立。如果沒有提供容器,則使用預設deque容器。容器介面卡不支援迭代器,因此我們不能將它們用於資料操作。但是它們支援push()pop()成員函式分別用於資料插入和刪除。

定義

以下是來自 <stack> 標頭檔案的 std::stack 的定義

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

引數

  • T − 包含的元素的型別。

    T 可以被任何其他資料型別替換,包括使用者定義的型別。

  • Container − 底層容器物件的型別。

成員型別

以下成員型別可以用作成員函式的引數或返回型別。

序號 成員型別 定義
1 value_type T(模板的第一個引數)
2 container_type 模板的第二個引數
3 size_type size_t
4 reference value_type&
5 const_reference const value_type&

來自 <stack> 的函式

以下是 <stack> 標頭檔案中的所有方法列表。

建構函式

序號 方法和描述
1 stack::stack 預設建構函式

構造一個空的棧物件,其中包含零個元素。

2 stack::stack 複製建構函式

使用另一個棧中存在的每個元素的副本構造一個棧。

3 stack::stack 移動建構函式

使用移動語義構造一個包含其他內容的棧。

解構函式

序號 方法和描述
1 stack::~stack

透過釋放容器記憶體來銷燬棧。

成員函式

序號 方法和描述
1 stack::emplace

在棧頂構造並插入新元素。

2 stack::empty

測試棧是否為空。

3 stack::operator=複製版本

透過替換舊內容來為棧分配新內容。

4 stack::operator=移動版本

透過替換舊內容來為棧分配新內容。

5 stack::pop

從棧中刪除頂部元素。

6 stack::push複製版本

在棧頂插入新元素。

7 stack::push移動版本

在棧頂插入新元素。

8 stack::size

返回棧中存在的元素總數。

9 stack::swap

將棧的內容與另一個棧的內容交換。

10 stack::top

返回對棧頂元素的引用。

非成員過載函式

序號 方法和描述
1 operator==

測試兩個棧是否相等。

2 operator!=

測試兩個棧是否相等。

3 operator<

測試第一個棧是否小於另一個棧。

4 operator<=

測試第一個棧是否小於或等於另一個棧。

5 operator>

測試第一個棧是否大於另一個棧。

6 operator>=

測試第一個棧是否大於或等於另一個棧。

7 swap

交換兩個棧的內容。

廣告