C++基礎:C++標準庫之棧(stack)和佇列(queue)
阿新 • • 發佈:2019-01-05
在C++標準庫(STL)中,實現了棧和佇列,方便使用,並提供了若干方法。以下作簡要介紹。
1、棧(stack)說明及舉例:
使用棧,要先包含標頭檔案 : #include<stack>
定義棧,以如下形式實現: stack<Type> s; 其中Type為資料型別(如 int,float,char等)。
棧的主要操作:
s.push(item); //將item壓入棧頂 s.pop(); //刪除棧頂的元素,但不會返回 s.top(); //返回棧頂的元素,但不會刪除 s.size(); //返回棧中元素的個數 s.empty(); //檢查棧是否為空,如果為空返回true,否則返回false
棧操作舉例:
#include<iostream> #include<stack> #include<queue> using namespace std; void main() { stack<int> s; int num; cout<<"------Test for Stack-------"<<endl; cout<<"Input number:"<<endl; while(cin>>num) { s.push(num); } cout<<"The Stack has "<<s.size()<<" numbers.They are:"<<endl; while(!s.empty()) { cout<<s.top()<<" "; s.pop(); } cout<<"\nNow the size is "<<s.size()<<endl; system("Pause"); }
結果截圖:
2、佇列(queue)說明及舉例:
使用佇列,要先包含標頭檔案 : #include<queue>
定義佇列,以如下形式實現: queue<Type> q; 其中Type為資料型別(如 int,float,char等)。
佇列的主要操作:
q.push(item) //將item壓入佇列尾部 q.pop() //刪除隊首元素,但不返回 q.front() //返回隊首元素,但不刪除 q.back() //返回隊尾元素,但不刪除 q.size() //返回佇列中元素的個數 q.empty() //檢查佇列是否為空,如果為空返回true,否則返回false
佇列操作舉例
#include<iostream>
#include<stack>
#include<queue>
using namespace std;
void main()
{
queue<int> q;
int num;
cout<<"------Test for Queue-------"<<endl;
cout<<"Input number:"<<endl;
while(cin>>num)
{
q.push(num);
}
cout<<"Now the Queue has "<<q.size()<<" numbers."<<endl;
cout<<"The first is "<<q.front()<<endl;
cout<<"The last is "<<q.back()<<endl;
cout<<"All numbers:"<<endl;
while(!q.empty())
{
cout<<q.front()<<" ";
q.pop();
}
cout<<"Now the Queue has "<<q.size()<<" numbers."<<endl;
system("Pause");
}
結果截圖: