C++(STL) 棧(stack)和隊(duì)列(queue)(轉(zhuǎn)載)

在C++標(biāo)準(zhǔn)庫(kù)(STL)中,實(shí)現(xiàn)了棧和隊(duì)列,方便使用,并提供了若干方法。以下作簡(jiǎn)要介紹。

1. 棧(stack)說(shuō)明及舉例:

使用棧,要先包含頭文件 : #include<stack>

定義棧,以如下形式實(shí)現(xiàn): stack<Type> s; 其中Type為數(shù)據(jù)類型(如 int,float,char等)。

棧的主要操作:
s.push(item); //將item壓入棧頂
s.pop(); //刪除棧頂?shù)脑?,但不?huì)返回
s.top(); //返回棧頂?shù)脑兀粫?huì)刪除
s.size(); //返回棧中元素的個(gè)數(shù)
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");
}

結(jié)果截圖:


2、隊(duì)列(queue)說(shuō)明及舉例:

使用隊(duì)列,要先包含頭文件 : #include<queue>

定義隊(duì)列,以如下形式實(shí)現(xiàn): queue<Type> q; 其中Type為數(shù)據(jù)類型(如 int,float,char等)。

隊(duì)列的主要操作:
q.push(item) //將item壓入隊(duì)列尾部
q.pop() //刪除隊(duì)首元素,但不返回
q.front() //返回隊(duì)首元素,但不刪除
q.back() //返回隊(duì)尾元素,但不刪除
q.size() //返回隊(duì)列中元素的個(gè)數(shù)
q.empty() //檢查隊(duì)列是否為空,如果為空返回true,否則返回false

//隊(duì)列操作舉例
#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");
 
 
}

結(jié)果截圖:


轉(zhuǎn)載自:https://blog.csdn.net/livecoldsun/article/details/25011413

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本節(jié)我們將介紹 STL 中的 stack 和 queue 容器使用。 棧和隊(duì)列都是極其重要的數(shù)據(jù)結(jié)構(gòu),C++ ST...
    思想永不平凡閱讀 2,810評(píng)論 1 5
  • 棧 棧的英文單詞是Stack,它代表一種特殊的線性表,這種線性表只能在固定一端(通常認(rèn)為是線性表的尾端)進(jìn)行插入,...
    Jack921閱讀 1,631評(píng)論 0 5
  • C++ 標(biāo)準(zhǔn)模板庫(kù)(STL) 作者:AceTan,轉(zhuǎn)載請(qǐng)標(biāo)明出處! 0x00 何為STL## STL(Standa...
    AceTan閱讀 5,155評(píng)論 3 44
  • 一、棧 1.1 棧的定義 棧(Stack):只允許在一端進(jìn)行插入或刪除操作的線性表。首先棧是一種線性表,但是限定這...
    末雨潮聲閱讀 809評(píng)論 0 0
  • 一個(gè)小小的決定 影響了一條河流的成長(zhǎng) 影響了白天和夜晚的溫差 四季輪回 思念多了起來(lái) 海洋有了感恩的愿望 一個(gè)小小...
    大度章閱讀 283評(píng)論 2 12

友情鏈接更多精彩內(nèi)容