這種資料結構使用lifo技術,其中lifo表示後進先出。首先插入的元素將在末尾提取,以此類推。有乙個名為「top」的元素,它是位於最上面位置的元素。所有插入和刪除操作都是在堆疊的頂部元素本身進行的。
語法:
template
<
classt,
class
container
= deque
>
class
stack
;
模板引數
t:引數指定容器介面卡將保留的元素的型別。
container:引數指定容器的內部物件,用於容納堆疊的元素。
成員型別
value_type:指定了元素型別。
container_type:指定了基礎容器型別。
size_type:它指定元素的大小範圍。
該函式用於在堆疊頂部插入新元素。
void push (const value_type& value)
stack<
int> a;
//a為空
a.push(1
);//a中元素:1
該函式用於刪除元素,堆疊中的元素從頂部刪除。
void pop()
stack<
int> a;
//a為空
a.push(1
);//a中元素:1
a.push(2
);//a中元素:2,1
a.pop()
;//a中元素:1
該函式用於訪問堆疊的頂部元素。該元素起著非常重要的作用,因為所有插入和刪除操作都是在頂部元素上執行的。
value_type& top();
const value_type& top() const;
stack<
int> a;
//a為空
a.push(1
);//a中元素:1
a.push(2
);//a中元素:2,1
int b = a.
top();
//b為2,a中元素不改變
該函式返回堆疊容器的大小,該大小是堆疊中儲存的元素數量的度量。
size_type size() const
stack<
int> a;
//a為空
a.push(1
);//a中元素:1
a.push(2
);//a中元素:2,1
int b = a.
size()
;//b為2
該函式用於測試堆疊是否為空。如果堆疊為空,則該函式返回true,否則返回false。
bool empty() const;
stack<
int> a;
//a為空
bool b = a.
empty()
;//返回true
a.push(1
);//a中元素:1
b = a.
empty()
;//返回false
該函式用於在當前頂部元素上方的堆疊中插入新元素。。
template void emplace (args&&… args);
args:引數**用於構造新元素的引數。也就是說,由args指定的元素將插入到當前頂部元素上方的堆疊中。現在,新插入的元素成為頂部元素,並且所有推入和彈出操作都在其上執行。
與push的區別:
push的元素必須是已經構造好的物件,而emplace可以直接傳入構造物件需要的元素,然後自己呼叫其建構函式!
stack<
int> a;
//a為空
a.emplace(1
);//a中元素:1
STL容器之stack棧
棧 statck 這種資料結構在計算機中是相當出名的。棧中的資料是先進後出的 first in last out,filo 棧只有乙個出口,允許新增元素 只能在棧頂上增加 移出元素 只能移出棧頂元素 取得棧頂元素等操作。在stl中,棧是以別的容器作為底部結構,再將介面改變,使之符合棧的特性就可以了。...
C 基礎 STL之棧stack
這篇文章介紹一下stl中stack的基本使用方法。棧也是最為常見的一種資料結構,佇列中的元素滿足filo 先進後出 include using namespace std stack函式名 用途功能說明 時間複雜度 size 查詢遍歷 獲取元素個數 o 1 top 查詢遍歷 獲取指向第乙個元素的迭代...
C 中STL容器之棧 stack
1.棧 stack 基本介紹 棧是限定在僅在表尾進行插入或刪除操作的線性表,表尾端稱為棧頂 top 表頭端稱為 棧底 bottom 一般的棧如下圖所示,它的特點可用圖3.1 b 所示的鐵路排程站形象地表示 2.棧的基本用法 2.1 棧的定義方式 stacks 引數也是資料型別,這是棧的定義方式 st...