久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  應聘面試  >  物聯(lián)網(wǎng)面試題  > STL教程(六):C++ STL常用容器之stack

STL教程(六):C++ STL常用容器之stack

來源:千鋒教育
發(fā)布人:syq
時間: 2022-07-11 17:26:00 1657531560

  1、stack容器的基本概念

  stack是一種先進后出(First In Last Out,FILO)的數(shù)據(jù)結(jié)構(gòu),它只有一個出口,形式如圖所示。stack容器允許新增元素,移除元素,取得棧頂元素,但是除了最頂端外,沒有任何其他方法可以存取stack的其他元素。換言之,stack不允許有遍歷行為。 有元素推入棧的操作稱為:push,將元素推出stack的操作稱為pop。

1

  2、stack容器特點

  Stack所有元素的進出都必須符合”先進后出”的條件,只有stack頂端的元素,才有機會被外界取用。 Stack不提供遍歷功能,也不提供迭代器。

  3、stack常用API

  3.1stack構(gòu)造函數(shù)

stack<T> stkT;//stack采用模板類實現(xiàn), stack對象的默認構(gòu)造形式:stack(const stack &stk);//拷貝構(gòu)造函數(shù)

  3.2stack賦值操作

stack& operator=(const stack &stk);//重載等號操作符

  3.3stack數(shù)據(jù)存取操作

push(elem);//向棧頂添加元素 pop();//從棧頂移除第一個元素 top();//返回棧頂元素

  3.4stack大小操作

empty();//判斷堆棧是否為空 size();//返回堆棧的大小

  案例:

#include <iostream>#include<stack>using namespace std;void test()

 {

     stack<int> s;

     s.push(10);

     s.push(20);

     s.push(30);

     s.push(40);

     s.push(50);

     if(s.empty())

     {

        cout<<"空棧"<<endl;

     }

     else

     {

         cout<<"棧的元素個數(shù):"<<s.size()<<endl;

         while(!s.empty())//棧不為空 我就訪問棧頂元素

         {

             cout<<s.top()<<" ";

             s.pop();//出棧 一個數(shù)據(jù)

         }

     }

 }int main(int argc, char *argv[]){

   test();

    return 0;}

2

 

  4、其他應用場景

  給定一個句子(只包含字母和空格), 將句子中的單詞位置反轉(zhuǎn),單詞用空格分割, 單詞之間只有一個空格,前后沒有空格。

  比如: (1) “good good study day day up”-> “up day day study good good ”

  案例:

#include<iostream>#include<stack>using namespace std;int main(){

    string ss;

    stack<string> sstack;

    while(cin>>ss){

        sstack.push(ss);

    }

    while(sstack.size()>1){

        cout<<sstack.top()<<" ";

        sstack.pop();

    }

    cout<<sstack.top()<<endl;

    return 0;}

  更多關(guān)于“物聯(lián)網(wǎng)培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業(yè)需求,更科學更嚴謹,每年培養(yǎng)泛IT人才近2萬人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
物聯(lián)網(wǎng)公司面試題:保障物聯(lián)網(wǎng)安全的措施有哪些?

題目:請談談您對物聯(lián)網(wǎng)安全的理解,以及在物聯(lián)網(wǎng)系統(tǒng)中保障安全性的措施。回答:物聯(lián)網(wǎng)安全是指在物聯(lián)網(wǎng)系統(tǒng)中保護設(shè)備、數(shù)據(jù)和通信免受未經(jīng)授...詳情>>

2023-07-26 11:59:27
物聯(lián)網(wǎng)中的邊緣計算是什么?請解釋其優(yōu)勢和應用場景

答案:邊緣計算是一種將計算和數(shù)據(jù)處理能力移動到物聯(lián)網(wǎng)設(shè)備附近的計算模型。在邊緣計算中,數(shù)據(jù)的處理和分析發(fā)生在接近數(shù)據(jù)源的設(shè)備或邊緣節(jié)點...詳情>>

2023-07-18 14:15:00
可以介紹一下js的內(nèi)部Date對象功能嗎

提供了操作時間和日期的方法擁有一系列屬性和方法,可以用來獲取系統(tǒng)當前時間或者設(shè)置 Date 對象中的時間 通過 getTime()方法可返回距 1970 年 ...詳情>>

2023-01-21 15:51:32
為什么需要三次握手,兩次不行嗎?

弄清這個問題,我們需要先弄明白三次握手的目的是什么,能不能只用兩次握手來達到同樣的目的。 第一次握手:客戶端發(fā)送網(wǎng)絡包,服務端收到了。...詳情>>

2022-10-25 16:55:00
什么是半連接隊列?

服務器第一次收到客戶端的 SYN 之后,就會處于 SYN_RCVD 狀態(tài),此時雙方還沒有完全建立其連接,服務器會把此種狀態(tài)下請求連接放在一個隊列里,...詳情>>

2022-10-25 16:55:00
快速通道