STL演算法的應用(二)

2021-09-09 05:37:25 字數 681 閱讀 1010

2.存放臨時資料

在演算法設計有時需要存放一些臨時資料,通常的情況是,如果後存入的元素先處理,可以使用(棧)stack容器【後進先出】;如果現先存入的元素先處理,可以使用queue(佇列)容器,如果元素的處理順序按照某個優先順序進行,可以使用priority_queue容器。

例.設計乙個演算法,判斷乙個含有(),,{},3中型別括號的表示式中的所有括號是否匹配。

解:這裡的主資料是乙個字串表示式,採用string字串str儲存它。在判斷括號是否匹配時需要用到乙個棧(因為每個右括號都是和前面最近的左括號匹配),採用stack容器作為棧。對應完整程式如下:

#include

#include

#include

using

namespace std;

bool

solve

(string str)

//判斷str中的括號是否匹配

i++;}

if(st.

empty()

)return

true

;else

return

false;}

void

main()

執行結果:

(a+[b-c]+d)中括號匹配

(a+[b-c]+d)中括號不匹配

STL的簡單應用二

生成排序 標頭檔案 include bool next permutation begin,end 改變區間內元素的順序,產生下乙個排列。bool prev permutation begin,end 產生前乙個排列。注意 end為最後乙個元素的下乙個位置。upper bound和lower bou...

STL 演算法 常見演算法(二)

stl 演算法 常見演算法 這兩組函式提供的實現刪除序列中的相關元素的思路,對我們實現自己的演算法是有幫助的。這四個函式所在的標頭檔案仍然是 include。尤其需要注意的是,這四個函式雖然函式名都有remove,但均沒有移除容器元素的動作,也即至少均不改變容器的大小,更有甚者 remove cop...

STL 常用演算法(二)查詢演算法

演算法簡介 1 find 功能描述 函式原型 include include include void test01 查詢容器中是否有 5 這個元素 vector int iterator it find v.begin v.end 5 if it v.end else class person 過...