C STL常用操作之stack篇

2021-10-14 17:15:11 字數 1257 閱讀 3508

棧也是一種常用的資料結構,其特點是last in first out(後進先出)。

棧對於某些問題的處理是非常方便的,比如字尾表示式求值、中綴表示式轉化為字尾表示式。

逆序輸出未知長度的字串、十進位制轉二進位制。

等等……

//一般使用空腔構造

ss.push(2

);//將整形資料2壓入到棧ss中

ss.push(5

);//將整形資料5壓入到棧ss中

此時棧ss如圖所示:

//輸出棧頂元素

ss.pop()

;//彈出棧頂元素,此時棧頂將向下移動乙個位置

cout << ss.

size()

;//獲得棧的長度

if(ss.

empty()

);//判斷棧是否為空

這裡我們利用棧倒序輸出一行中全部的字串,順便再利用stringstream鞏固一下string部分的一些內容。

另外,提一下,棧空間的使用

我們平時寫**的時候,區域性變數都會用到棧空間,比如我們經常使用遞迴來處理漢諾塔等遞迴問題。

遞迴就是乙個很典型的棧,第一層的遞迴先入棧,因為是第一層,它總是最先被呼叫,最先入棧。

在做題的時候,棧空間是有限的,有時候會溢位,所以能將遞迴改為非遞迴的演算法,一般都會使用非遞迴,比如斐波那契額數列求值。

stack簡單使用,適用於像我這樣的小白快速上手,大神請鍵下留情!

發現問題歡迎指正!

C STL常用操作之vector篇

include 它是一種容器,可以理解為向量 陣列 可以動態申請增加長度的陣列。vector int v1 預設陣列長度為0 vector int v2 4 申請了長度為4的陣列v2 vector int v3 4,5 申請了長度為4的陣列,並且每個位置都賦值為5用at或者類似於陣列 vector ...

C STL常用操作之string篇

include 一種資料型別,類似於字串,但是可以進行一些比字串更方便的操作,在程式設計的時候也是經常用到。string s1 預設為空串 string s2 4 c 長度為4且每個位置的字元均為c cout s1 endl s2 endl getline cin,s1 讀取一整行 cin s2 讀...

C STL常用操作之multimap篇

multimap和map其實很相似但是multimap是允許重複元素的。map詳見 如此,我們可以看到,我們插入了三個鍵值key均為520的元素,這個操作在multimap中是合法的。multimap int,string multi multi.insert pair int,string 520...