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

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

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

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > STL教程(七):C++ STL常用容器之 queue

        STL教程(七):C++ STL常用容器之 queue

        來源:千鋒教育
        發(fā)布人:syq
        時(shí)間: 2022-06-22 16:26:04 1655886364

          上一篇文章介紹了先進(jìn)后出的stack容器,對(duì)應(yīng)著先進(jìn)后出還有一種先進(jìn)先出的容器叫queue容器 。

          1、queue容器的基本概念

          Queue是一種先進(jìn)先出(First In First Out,FIFO)的數(shù)據(jù)結(jié)構(gòu),它有兩個(gè)出口,queue容器允許從一端新增元素,從另一端移除元素。

        1

          2、queue容器的特點(diǎn)

          Queue所有元素的進(jìn)出都必須符合”先進(jìn)先出”的條件,只有queue的頂端元素,才有機(jī)會(huì)被外界取用。

          Queue不提供遍歷功能,也不提供迭代器。

          3、queue常用API介紹

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

        queue<T> queT;//queue采用模板類實(shí)現(xiàn),queue對(duì)象的默認(rèn)構(gòu)造形式: queue(const queue &que);//拷貝構(gòu)造函數(shù)

          3.2queue存取、插入和刪除操作

        push(elem);//往隊(duì)尾添加元素 pop();//從隊(duì)頭移除第一個(gè)元素 back();//返回最后一個(gè)元素 front();//返回第一個(gè)元素

          3.3queue賦值操作

        queue& operator=(const queue &que);//重載等號(hào)操作符

          3.4queue大小操作

        empty();//判斷隊(duì)列是否為空 size();//返回隊(duì)列的大小

          案例:

        #include<iostream>#include <queue>    //隊(duì)列模板

        using namespace std;void test(){

            queue<int> q;

            q.push(10);

            q.push(20);

            q.push(30);

            q.push(40);

            q.push(50);

             if(q.empty())

             {

                cout<<"空隊(duì)"<<endl;

             }

             else

             {

                 cout<<"隊(duì)的元素個(gè)數(shù):"<<q.size()<<endl;

                 while(!q.empty())//隊(duì)不為空 我就訪問隊(duì)頭元素

                 {

                     cout<<q.front()<<" ";

                     q.pop();//出隊(duì) 一個(gè)數(shù)據(jù)

                 }

             }

         }int main() {

            test() ;

            return 0;}

        2

          4、優(yōu)先隊(duì)列priority_queue

          在頭文件中,還定義了一個(gè)非常有用的模版類priority_queue(優(yōu)先隊(duì)列),優(yōu)先隊(duì)列與隊(duì)列的差別在于優(yōu)先隊(duì)列不是按照入隊(duì)的順序出隊(duì),而是按照隊(duì)列中元素的優(yōu)先權(quán)順序出隊(duì)(默認(rèn)為大者優(yōu)先,也可以通過指定算子來指定自己的優(yōu)先順序)。

          priority_queue模版類有三個(gè)模版參數(shù),元素類型,容器類型,比較算子。其中后兩個(gè)都可以省略,默認(rèn)容器為vector,默認(rèn)算子為less,即小的往前排,大的往后排(出隊(duì)時(shí)序列尾的元素出隊(duì))。

          定義方式:

        priority_queue<int >q1;//優(yōu)先隊(duì)列  默認(rèn)大的先出隊(duì)

        priority_queue<pair<int,int> >q2;

        priority_queue<int,vector<int>,greater<int> >q3;//定義小的先出隊(duì)

          案例:給定幾個(gè)坐標(biāo)(x,y,z),按照優(yōu)先輸出z坐標(biāo)大的。

        #include<iostream>

        #include<queue>

        #include<stdlib.h>

        using namespace std;

        class T

        {

        public:

        int x,y,z;

        T(int a,int b,int c):x(a),y(b),z(c)

        {

        }

        };

        bool operator<(const T&t1,const T&t2)

        {

        return t1.z<t2.z;

        }

        int main(void)

        {

        priority_queue<T>q;

        q.push(T(4,4,3));

        q.push(T(2,2,5));

        q.push(T(1,5,4));

        q.push(T(3,3,6));

        while(!q.empty())

        {

        T t=q.top();

        q.pop();

        cout<<t.x<<" "<<t.y<<" "<<t.z<<endl;

        }

        system("Pause");

        return 1;

         

        }

        3

          更多關(guān)于智能物聯(lián)網(wǎng)培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗(yàn),采用全程面授高品質(zhì)、高體驗(yàn)培養(yǎng)模式,擁有國(guó)內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實(shí)現(xiàn)高薪夢(mèng)想。

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

        PlatformIO是什么PlatformIO是一個(gè)全面的物聯(lián)網(wǎng)開發(fā)平臺(tái),它為眾多硬件平臺(tái)和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡(jiǎn)化了開發(fā)過程,并能兼容各種...詳情>>

        2023-10-14 12:55:06
        云快照與自動(dòng)備份有什么區(qū)別?

        1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時(shí)間點(diǎn)后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動(dòng)備份的主要目標(biāo)...詳情>>

        2023-10-14 12:48:59
        服務(wù)器為什么要用Linux?

        服務(wù)器為什么要用Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,Linux在眾多選擇中脫穎而出。Linux作為服務(wù)器操作系統(tǒng)的優(yōu)選,有其獨(dú)特的優(yōu)勢(shì)和特點(diǎn)。包括其...詳情>>

        2023-10-14 12:34:11
        ORM解決的主要問題是什么?

        ORM(對(duì)象關(guān)系映射)解決的主要問題是將關(guān)系數(shù)據(jù)庫(kù)與面向?qū)ο缶幊讨g的映射困境。在傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)以表格的形式存儲(chǔ),而在面向?qū)ο?..詳情>>

        2023-10-14 12:26:19
        Go為什么不支持三元運(yùn)算符?

        Go為什么不支持三元運(yùn)算符Go語(yǔ)言是一種以簡(jiǎn)潔和有效性為目標(biāo)的編程語(yǔ)言,因此在設(shè)計(jì)過程中,Go的設(shè)計(jì)者刻意排除了一些他們認(rèn)為可能導(dǎo)致復(fù)雜性或...詳情>>

        2023-10-14 12:12:36
        广州市| 东城区| 栾川县| 许昌市| 孟津县| 福泉市| 沙雅县| 商洛市| 海伦市| 南昌县| 江源县| 满城县| 灵台县| 凯里市| 肇庆市| 虹口区| 靖远县| 高邮市| 麻栗坡县| 临澧县| 桂阳县| 梁山县| 蒙山县| 长寿区| 汝南县| 濮阳市| 谷城县| 全椒县| 分宜县| 平遥县| 焉耆| 鹤山市| 云浮市| 梨树县| 大悟县| 长武县| 清新县| 竹溪县| 彩票| 凌源市| 尚义县|