stack棧的常見用法詳解

2021-10-09 01:58:12 字數 1311 閱讀 8931

1.stack的定義。

stack是一種先進後出的容器,要使用stack,應該先新增標頭檔案#include,並在標頭檔案限免加上using namespace std;

​ 其定義的寫法和其他stl容器一樣,typename可以是任何基本資料型別或容器

stack< typename > name;
2.stack容器內元素的訪問

由於stack是一種先進後出的資料結構,在stl中的stack中只能通過top()來訪問棧頂元素

#include #includeusing namespace std;

int main(void)

printf("%d",st.top());

return 0;

}

3.stack常用函式例項解析

1.push()將x入棧,時間複雜度為o(1)

2.top()訪問棧頂元素,時間複雜度為o(1)

3.pop()用以彈出棧頂元素,時間複雜度為o(1)

示例:

#include#include using namespace std;

int main(void)

for (int i = 0; i <3 ; ++i)

printf("%d",st.top());

return 0;

}

4.empty()可以檢測stack內是否為空,返回true為空,返回false為非空,時間複雜度為o(1).

示例如下:

#include #include using namespace std;

int main(void)

else

st.push(1);

if(st.empty() == false)

else

return 0;

}

4.size()返回stack的元素個數,時間複雜度為o(1)

#include #include using namespace std;

int main(void)

printf("%d",st.size());

return 0;

}

4.stack的常見用途

stack可用來模擬實現一些遞迴,防止程式對棧記憶體的限制而導致程式執行出錯。一般來說,程式的棧記憶體空間很小,對有些題目來說,如果用普通的函式進行遞迴,一旦遞迴層數過深,則會導致程式執行崩潰。如果用棧來模擬遞迴演算法的實現,則可以避免這一方面的問題,不過這種應用出現較少。

STL中stack(棧)的用法

stack 模板類的定義在標頭檔案中。stack 模板類需要兩個模板引數,乙個是元素型別,乙個容器型別,但只有元素型別是必要 的,在不指定容器型別時,預設的容器型別為deque。定義stack 物件的示例 如下 stacks1 stacks2 stack 的基本操作有 入棧,如例 s.push x ...

c 中的 棧 stack 用法

c stack 堆疊 是乙個容器類的改編,為程式設計師提供了堆疊的全部功能,也就是說實現了乙個先進後出 filo 的資料結構。c stl棧stack的標頭檔案為 include c stl棧stack的成員函式介紹 操作 比較和分配堆疊 empty 堆疊為空則返回真 pop 移除棧頂元素 push ...

STL之stack(棧)詳解

這種資料結構使用lifo技術,其中lifo表示後進先出。首先插入的元素將在末尾提取,以此類推。有乙個名為 top 的元素,它是位於最上面位置的元素。所有插入和刪除操作都是在堆疊的頂部元素本身進行的。語法 template classt,class container deque class stac...