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 過...