這篇文章介紹一下stl中stack的基本使用方法。
棧也是最為常見的一種資料結構,佇列中的元素滿足filo(先進後出)
#includestack函式名using namespace std;
用途功能說明
時間複雜度
size()
查詢遍歷
獲取元素個數
o(1)
top()
查詢遍歷
獲取指向第乙個元素的迭代器
o(1)
push
插入在末尾插入資料x
o(1)
pop刪除
刪除最後乙個元素
o(1)
empty
刪除刪除所有元素
o(n)
注:stack的成員函式主要包括插入和刪除,實際對應著棧操作的入棧和出棧兩個操作,然後就是獲取元素個數和棧定元素的操作,都是負載度為o (1)的操作。本身實際上沒有什麼可比較的地方的,但是關於相類似的成員函式vector的如下所示
stack函式名
vector函式名
用途功能說明
時間複雜度
size()
size()
查詢遍歷
獲取元素個數
o(1)
top()
begin()
查詢遍歷
獲取指向第乙個元素的迭代器
o(1)
-end()
查詢遍歷
獲取末尾的迭代器
o(1)
-insert(position,x)
插入在position位置插入資料x
o(n)
-erase(position)
刪除刪除position位置上的元素
o(n)
push
push_back(x)
插入在末尾插入資料x
o(1)
poppop_back()
刪除刪除最後乙個元素
o(1)
empty
clear()
刪除刪除所有元素
o(n)
注:可以看到vector基本上包含所有的stack的操作,實際上也非常容易理解,使用陣列將一端固定,只從另外一端插入刪除就是棧的實現,所以可以看到棧是沒有在指定位置執行插入和刪除的操作的,因為實現完畢之後就是vector了。
#include #include using namespace std;
void print_top_element(stack s) else
}int main()
stack element in
size:0
size:1 stack top element : l
size:2 stack top element : i
size:3 stack top element : u
stack element out
size:2 stack top element : i
size:1 stack top element : l
process finished with exit code 0
變長支援、泛化型別、常用功能函式內嵌、可以使用其他多種stl的函式、使用簡單等,都是stack被使用的原因,但是棧本身是一種非常簡單的資料結構,在stl的實現中也有很多限制,比如沒有迭代器的支援等。 STL容器之stack棧
棧 statck 這種資料結構在計算機中是相當出名的。棧中的資料是先進後出的 first in last out,filo 棧只有乙個出口,允許新增元素 只能在棧頂上增加 移出元素 只能移出棧頂元素 取得棧頂元素等操作。在stl中,棧是以別的容器作為底部結構,再將介面改變,使之符合棧的特性就可以了。...
STL之stack(棧)詳解
這種資料結構使用lifo技術,其中lifo表示後進先出。首先插入的元素將在末尾提取,以此類推。有乙個名為 top 的元素,它是位於最上面位置的元素。所有插入和刪除操作都是在堆疊的頂部元素本身進行的。語法 template classt,class container deque class stac...
C 中STL容器之棧 stack
1.棧 stack 基本介紹 棧是限定在僅在表尾進行插入或刪除操作的線性表,表尾端稱為棧頂 top 表頭端稱為 棧底 bottom 一般的棧如下圖所示,它的特點可用圖3.1 b 所示的鐵路排程站形象地表示 2.棧的基本用法 2.1 棧的定義方式 stacks 引數也是資料型別,這是棧的定義方式 st...