精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

c++之棧和隊列

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2023-07-15 08:50 ? 次閱讀

1.stack容器

stack ,棧(堆棧),是一種先進后出(First In Last Out,FILO)的數據結構,先插入的數據在棧底,后放入的數據在棧頂,所有的數據只能從棧頂取出。

在生活中先進后出的例子友很多,例如我們在桌子上摞書,先放的在最下面,后放的在最上面。在取書的時候也是先取最后放的,最才能取到第一個放的。

wKgZomSxO8eAeVP5AAPtT7ckrTE867.png

在棧容器中,只有棧頂數據才可以被外界訪問,因此stack不存在遍歷。

2.棧容器使用示例

  • stack(棧)容器特性:

先進后出(后進先出) --類似與往袋子中裝東西,先放進去的在最下面,最后放進行的可以先拿出來;第一個放進去的 --->棧底

最后一個放進的 --->棧頂

stack只允許從棧頂取數據

stack容器無法對數據進行排序sort,但可以判斷容器是否為空empty,可以計算元素的個數size;

  • 相關函數:
stack構造函數:
	stack stk; //默認構造
	stack(const stack &p);//拷貝構造
stack賦值
	operator=() --運算符號重載
stack入棧與出棧:
	push() -->入棧
	emplace() -->入棧(在容器尾部插入元素)
	pop() --->出棧
	top() -->查看棧頂元素
	empty() -->判斷容器是否為空
	size()  -->獲取元素個數
	swap -->交換元素

使用示例:

#include 
#include 
using namespace std;
void test()
{
	//創建一個stack容器
	stack stk;
	//入棧
	stk.push(10);
	stk.push(20);
	stk.push(30);
	stk.push(40);
	stk.emplace(100);
	stackstk3(stk);//拷貝構造
	cout stk2 = stk;//賦值
	if (stk2.empty())
	{
		cout 
wKgaomSxPPiAf6wEAAPPMhfoUIQ563.png

3.queue容器

隊列(queue 和堆棧相似,是一種可以存取的數據結構,不同的是隊列的存取是在兩個不同的方向進行的,因此其主要特征是先進先出(First-in-first-out,FIFO),類似于我們生活中的水管。

wKgaomSxPaOAIMV_AAQVau97g90678.png

4.queue容器使用示例

隊列只需要從對尾插入數據(入隊,push_back),對頭取數據(出隊,pop_front);

隊列只能訪問對頭和隊尾數據,其他數據需要出隊才能訪問,所以不存在遍歷隊列;

返回隊列頭數據:front()

返回隊列尾數據:back()

  • 相關函數:
隊列構造函數:
	queue que; //隊列通過類模板實現,默認構造函數
	queue(const queue &p);
	operator=(queue &p)  -->運算符重載
相關成功函數:
	入隊:push()
	出隊:pop()
獲取隊列頭數據:front();
獲取隊列尾數據:back();
判斷隊列是否為空:empty();
獲取隊列中元素個數:size();
互換元素:swap();

使用示例:

#include 
#include 
using namespace std;
void test()
{
	queue q;
	//入隊
	q.push(10);
	q.push(20);
	q.push(30);
	q.emplace(40);//從隊列尾插入數據
	cout 
wKgZomSxPmGACvvMAAPMCRBNWzc279.png
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • C++
    C++
    +關注

    關注

    22

    文章

    2104

    瀏覽量

    73503
  • 數據結構
    +關注

    關注

    3

    文章

    573

    瀏覽量

    40095
  • 隊列
    +關注

    關注

    1

    文章

    46

    瀏覽量

    10889
收藏 人收藏

    評論

    相關推薦

    C++STL算法(二)

    C++STL算法(二)
    的頭像 發表于 07-18 14:49 ?982次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>之</b>STL算法(二)

    c++STL算法(三)

    c++STL算法(三)
    的頭像 發表于 07-18 15:00 ?1224次閱讀
    <b class='flag-5'>c++</b><b class='flag-5'>之</b>STL算法(三)

    隊列C++中的queue詳解

    隊列就是一種線性的數據結構,它與日常生活中排隊的隊列相似,即先進先出(LIFO, First In First Out),這點也是它與(Stack)的最大不同之處。
    的頭像 發表于 07-18 17:31 ?1614次閱讀
    <b class='flag-5'>隊列</b>與<b class='flag-5'>C++</b>中的queue詳解

    C++文件操作

    C++文件操作
    的頭像 發表于 07-21 10:52 ?1084次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>之</b>文件操作

    隊列

    隊列:1、隊列定義:限定僅只能在表尾端進行插入和刪除的線性表。頂:表尾端被稱之為頂。
    發表于 08-13 13:50 ?0次下載

    你還會手寫隊列隊列的基本實現程序說明

    昨天跟一個CSDN上的朋友聊天,他說現在如果讓他自己手寫一個或者隊列,估計都要寫蠻久的,平時雖然都在用,但是都是別人封裝好的集合。確實,經典的數據結構,包括排序算法,雖然我們平時不用手寫了,但是
    的頭像 發表于 11-11 11:34 ?2780次閱讀

    深入淺出了解單調和單調隊列

    袁廚攜袁記菜館全體工作人員祝大家在新的一年,健健康康,開開心心。發量暴增,錢包超大。 哎,元旦假期結束了,又要繼續搬磚了,我們接著做題吧,今天我們好好說說單調和單調隊列。其實很容易理解,單調就是
    的頭像 發表于 02-02 10:18 ?1452次閱讀
    深入淺出了解單調<b class='flag-5'>棧</b>和單調<b class='flag-5'>隊列</b>

    隊列實現原理是什么?隊列實現方案有哪幾種?

    是一種后進先出的數據結構,而隊列是一種先進先出的數據結構,兩者原理不難理解,使用也簡單。
    的頭像 發表于 07-04 13:28 ?2713次閱讀
    <b class='flag-5'>隊列</b>實現<b class='flag-5'>棧</b>原理是什么?<b class='flag-5'>隊列</b>實現<b class='flag-5'>棧</b>方案有哪幾種?

    簡述Labview使用隊列的區別

    簡述Labview使用隊列的區別
    發表于 01-19 09:50 ?9次下載

    C++設計新思維-泛型編程與設計應用

    C++設計新思維-泛型編程與設計應用
    發表于 11-16 15:59 ?3次下載

    C++學習筆記c++的基本認識

    自這篇文章我們即將開始C++的奇幻之旅,其內容主要是讀C++ Primer的總結和筆記,有興趣可以找原版書看看,對于學習C++還是有很大幫助的。這篇文章將從一個經典的程序開始介紹C++
    的頭像 發表于 03-17 13:57 ?707次閱讀

    利用C++提供的隊列封裝一個消息隊列

    最近的C++項目中,需要用到消息隊列,但是C++中又沒有原生的消息隊列,就在網上找了一下相關資料,利用C++提供的
    的頭像 發表于 05-20 15:16 ?1779次閱讀
    利用<b class='flag-5'>C++</b>提供的<b class='flag-5'>隊列</b>封裝一個消息<b class='flag-5'>隊列</b>

    數據結構隊列,串介紹

    隊列不再過多描述,了解入規則,入隊出隊規則,的遞歸應用即可,面試肯定不會考這種概念,太簡單。
    的頭像 發表于 05-26 14:35 ?498次閱讀
    數據結構<b class='flag-5'>之</b><b class='flag-5'>棧</b>,<b class='flag-5'>隊列</b>,串介紹

    兩個實現一個隊列方法

    隊列是比較基礎的數據結構。無論在工作中,還是在面試中,隊列都用的比較多。在計算機的世界,你會看到隊列
    的頭像 發表于 10-08 15:54 ?781次閱讀

    C++之父新作帶你勾勒現代C++地圖

    為了幫助大家解決這些痛點問題,讓大家領略現代C++美,掌握其中的精髓,更好地使用C++C++之父Bjarne Stroustrup坐不住了,他親自操刀寫就了這本《
    的頭像 發表于 10-30 16:35 ?803次閱讀
    <b class='flag-5'>C++</b>之父新作帶你勾勒現代<b class='flag-5'>C++</b>地圖