c++中的queue容器

queue容器

  1. 隊列是一種容器適配器,專門用于在FIFO上下文(先進先出)中操作,其中從容器一端插入元素,另一端 提取元素。

  2. 隊列作為容器適配器實現,容器適配器即將特定容器類封裝作為其底層容器類,queue提供一組特定的 成員函數來訪問其元素。元素從隊尾入隊列,從隊頭出隊列。

  3. 底層容器可以是標準容器類模板之一,也可以是其他專門設計的容器類。該底層容器應至少支持以下操 作

      	empty:檢測隊列是否為空  size:返回隊列中有效元素的個數front:返回隊頭元素的引用 back:返回隊尾元素的引用push_back:在隊列尾部入隊列 pop_front:在隊列頭部出隊列 
    
  4. 標準容器類deque和list滿足了這些要求。默認情況下,如果沒有為queue實例化指定容器類,則使用標 準容器deque。

在這里插入圖片描述

queue沒有迭代器

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

queue 對象的默認構造

  1. queue 采用模板類實現,
  2. queue 對象的默認構造形式:queuequeT; 如: queuequeInt; //一個存放 int 的 queue 容器。
  3. queuequeFloat; //一個存放 float 的 queue 容器。 queuequeString; //一個存放 string 的 queue 容器。
  4. … … //尖括號內還可以設置指針類型或自定義類型。

queue 的處理數據的方法

  1. queue.push(elem); //往隊尾添加元素
  2. queue.pop(); //從隊頭移除第一個元素

queue 對象的拷貝構造與賦值

  1. queue(constqueue&que); //拷貝構造函數
  2. queue&operator=(constqueue&que);//重載等號操作符

queue 的數據讀取操作

  1. queue.back(); //返回最后一個元素
  2. queue.front(); //返回第一個元素

queue 的大小

  1. queue.empty(); //判斷隊列是否為空

  2. queue.size(); //返回隊列的大小

    #include<iostream>using namespace std;
    #include<queue>void test01()
    {queue<int>q;q.push(10);	//往隊尾添加元素q.push(20);q.push(30);q.push(40);while (!q.empty()){cout << "隊頭:" << q.front() << endl;cout << "隊尾:" << q.back() << endl;//彈出隊頭元素q.pop();}cout << "size:" << q.size() << endl;}int main()
    {test01();system("pause");return 0;
    }
    

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/383272.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383272.shtml
英文地址,請注明出處:http://en.pswp.cn/news/383272.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

NAU8810相關問題

1.ADC和DAC有什么區別&#xff1f; 不&#xff0c;這不是一個“愚弄人的”問題或腦筋急轉彎&#xff0c;并且我認為我們的讀者都非常清楚模數轉換器(ADC)及數模轉換器(DAC)的基本功能。 但在如何使用這些轉換器以及人們的認知度上也存在著哲理性區別。用最簡單的話講&#xff0…

c++中list容器

list概念 list是可以在常數范圍內在任意位置進行插入和刪除的序列式容器&#xff0c;并且該容器可以前后雙向迭代。list的底層是雙向鏈表結構&#xff0c;雙向鏈表中每個元素存儲在互不相關的獨立節點中&#xff0c;在節點中通過指針指向 其前一個元素和后一個元素。list與for…

Linux中rc的含義

在Linux中&#xff0c;最為常用的縮略語也許是“rc”&#xff0c;它是“runcomm”的縮寫――即名詞“run command”(運行命令)的簡寫。rc”是任何腳本類文件的后綴&#xff0c;這些腳本通常在程序的啟動階段被調用&#xff0c;通常是Linux系統啟動時。如/etc/rc&#xff08;連接…

c++中的set容器和multiset容器

set容器基本概念 set的特性是&#xff0c;所有元素都會根據元素的鍵值自動被排序。set的元素不像map那樣可以同時擁有實值和鍵值&#xff0c;set的元素即是鍵值又是實值。set不允許兩個元素又相同的鍵值。我們不可以通過set的迭代器改變set元素的值&#xff0c;因為set元素值就…

linux下的僵尸進程處理SIGCHLD信號

什么是僵尸進程&#xff1f; 首先內核會釋放終止進程(調用了exit系統調用)所使用的所有存儲區&#xff0c;關閉所有打開的文件等&#xff0c;但內核為每一個終止子進程保存了一定量的信息。這些信息至少包括進程ID&#xff0c;進程的終止狀態&#xff0c;以及該進程使用的CPU時…

c++中的map容器

map/multimap基本概念 Map的特性是&#xff0c;所有元素都會根據元素的鍵值自動排序。Map所有的元素都是pair&#xff0c;同時擁有實值和鍵值&#xff0c;pair的第一元素被視為鍵值&#xff0c;第二元素被視為實值&#xff0c;map不允許兩個元素有相同的鍵值我們可以通過map的…

mknod指令詳解

mknod - make block or character special files mknod [OPTION]... NAME TYPE [MAJOR MINOR] option 有用的就是 -m 了 name 自定義 type 有 b 和 c 還有 p 主設備號 次設備號 主設備號是由linux/major.h定義的&#xff0c;如下定義了一個DOC設備&am…

c++中容器(STL)的共性與使用的時機

容器的共通能力 C模板是容器的概念 理論提高&#xff1a;所有容器提供的都是值&#xff08;value&#xff09;語意&#xff0c;而非引用&#xff08;reference&#xff09;語意。容器執 行插入元素的操作時&#xff0c;內部實施拷貝動作。所以 STL 容器內存儲的元素必須能夠被…

Qt Creator 窗體控件自適應窗口大小布局

常見的軟件窗口大小改變&#xff08;最大化、手動改變時&#xff09;需要窗口的部件能夠自適應布局&#xff0c;而在Qt的應用程序界面設計中&#xff0c;對于像我一樣的初學者如何實現窗口自適應調整還是要繞點彎路的。網上百度了很多&#xff0c;多數說的很含糊&#xff0c;還…

c++中利用STL實現公司員工分組問題

#include<iostream>using namespace std; #include<vector> #include<string> #include<map> #include<ctime> /* 公司招聘了5個員工&#xff0c;5名員工進入公司之后&#xff0c;需要指派員工在那個部門工作 的人員信息&#xff1a;姓名 年齡 電…

c++中STL的常用算法--1(函數對象,謂詞,內建函數對象)

函數對象 重載函數調用操作符的類&#xff0c;其對象常稱為函數對象&#xff08;function object&#xff09;&#xff0c;即它們是行為類似函數的對象&#xff0c;也叫仿函數&#xff08;functor&#xff09;&#xff0c;其實就是重載"()"操作符&#xff0c;使得類…

QT子線程與主線程的信號槽通信

最近用QT做一個服務器&#xff0c;眾所周知&#xff0c;QT的主線程必須保持暢通&#xff0c;才能刷新UI。所以&#xff0c;網絡通信端采用新開線程的方式。在涉及到使用子線程更新Ui上的控件時遇到了點兒麻煩。網上提供了很多同一線程不同類間采用信號槽通信的方式&#xff0c;…

ubuntu14.04 通過PPA 安裝ffmpeg

去ffmpeg的官網可以獲取到最新的PPA信息 http://www.ffmpeg.org/download.html 根據系統選擇對應的PPA 然后執行以下語句&#xff1a; sudo add-apt-repository ppa:mc3man/trusty-media sudo apt-get updatesudo apt-get install ffmpeg 如果在安裝過程中發生了錯誤&#…

c++中的函數適配器

函數適配器 函數適配器概念 STL中定義了大量的函數對象&#xff0c;但是有時候需要對函數返回值進行進一步的簡單計算&#xff0c;或者填上多余的參數&#xff0c;不能直接代入算法&#xff0c;函數適配器實現了這一功能&#xff0c;將一種函數對象轉化為另一種符合要求的函數…

c++中STL的常用算法---2(遍歷算法,查找算法)

算法概述 算法主要由頭文件組成是所有STL頭文件中最大的一個&#xff0c;其中常用的功能涉及到比較&#xff0c;交換&#xff0c;查找&#xff0c;遍歷&#xff0c;復制&#xff0c;修改&#xff0c;反轉&#xff0c;排序&#xff0c;合并等體積很小&#xff0c;只包括在幾個序…

c++中的STL的常用算法---3(排序算法,拷貝和替換算法,算術生成算法,集合算法)

排序算法 merge() 以下是排序和通用算法&#xff1a;提供元素排序策略 merge: 合并兩個有序序列&#xff0c;存放到另一個序列。 #include<iostream>using namespace std; #include<algorithm> #include<vector>void test01() {vector<int >v1;vecto…

c++中STL實現演講比賽流程

演講比賽流程 1&#xff09;某市舉行一場演講比賽&#xff0c;共有 24 個人參加&#xff0c;按參加順序設置參賽號。比賽共三輪&#xff0c;前兩 輪為淘汰賽&#xff0c;第三輪為決賽。 2&#xff09;比賽方式&#xff1a;分組比賽 第一輪分為 4 個小組&#xff0c;根據參賽號…

c++實現貪吃蛇

游戲中的實現元素 游戲中元素分為&#xff1a;墻壁&#xff0c;蛇&#xff0c;事物以及蛇的可行區域和右側的版本號和游戲玩法提示 墻壁 *號表示&#xff0c;代表一個區域范圍&#xff0c;也就是蛇的可移動區域&#xff0c;蛇如果碰到墻壁視為死亡&#xff0c; 蛇 分為蛇頭&a…

Linux系統編程--1(進程和程序,CPU和MMU,PCB,進程狀態)

進程相關概念 程序和進程 程序&#xff1a;是指編譯好的二進制文件&#xff0c;在磁盤上&#xff0c;不占用系統資源(cpu、內存、打開的文件、設備、鎖…) 進程&#xff1a;是一個抽象的概念&#xff0c;與操作系統原理聯系緊密。進程是活躍的程序&#xff08;程序員角度&…