STL模板庫中棧和佇列常用用法總結
阿新 • • 發佈:2018-12-11
1、stack的基本用法 #include<stack>
(1)定義:
stack<int>S;
stack<string>S;
(2)基本操作:
S.push(x);x入棧。
S.pop();出棧(刪除棧頂元素,不返回)。
S.top();訪問棧頂元素。
S.empty();判斷棧是否為空(空時返回true,否則返回false)。
#include<iostream> #include<stack> using namespace std; int main() { /* //建立一個棧物件,類似與vector stack<int> S; //壓 for(int i=1;i<=10;i++) { S.push(i); cout<<S.top()<<endl; } //棧的大小 cout<<"size:"<<S.size()<<endl; //出棧 while(!S.empty()) { cout<<S.top()<<endl; S.pop(); } */ //棧中的元素跟容器一樣可以是其他型別的,所以靈活使用可以達到很多功能 //比如逆序一個英文句子 string s; stack<string> ss; while(1) { cin>>s; //用end控制結尾 if(s=="end") break; ss.push(s); } while(!ss.empty()) { cout<<ss.top()<<" "; ss.pop(); } cout<<endl; }
棧是一種很有用的資料結構,使用得當,能完成很多複雜的演算法;
2、佇列
queue的基本用法 #include<queue>
(1)定義:
queue<int>Q;
queue<double>Q;
(2)基本操作:
Q.push(x);x入隊。
Q.pop();出隊(彈出佇列第一個元素,不返回)。
Q.front();訪問隊首元素。
Q.back();訪問隊尾元素。
Q.empty();判斷佇列是否為空(空時返回true,否則返回false)。
Q.size();返回佇列中元素的個數。
這裡就不再演示了,跟棧類似。