最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談C++STL之雙端隊(duì)列容器

 更新時(shí)間:2021年06月09日 09:42:25   作者:lsgxeva  
deque雙端隊(duì)列容器與vector很類似,采用線性表順序存儲(chǔ)結(jié)構(gòu)。但與vector區(qū)別,deque采用分塊的線性存儲(chǔ)結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù),每塊的大小一般為512B,將之稱為deque塊,所有的deque塊使用一個(gè)map塊進(jìn)行管理,每個(gè)map數(shù)據(jù)項(xiàng)記錄各個(gè)deque塊的首地址。

概述

deque塊在頭部和尾部都可以插入和刪除。而不需要移動(dòng)任何元素,而不需要移動(dòng)其他元素(使用push_back()方法在尾部插入元素,會(huì)擴(kuò)張隊(duì)列,而使用push_front()方法在首部插入元素和使用insert()方法在中間插入元素,只是將原位置上的元素進(jìn)行覆蓋,不會(huì)增加新元素)一般來(lái)說(shuō),當(dāng)考慮到容器元素的內(nèi)存分配策略和操作的性能時(shí)deque相當(dāng)于vector更有優(yōu)勢(shì)。

創(chuàng)建deque對(duì)象與vector類似

插入元素

使用push_back()方法從尾部插入元素,會(huì)不斷擴(kuò)張隊(duì)列。

#include<iostream>
#include<deque>
using namespace std;
int main()
{
    deque<int> d;
    d.push_back(1);
    d.push_back(2);
    cout<<d[0]<<" : "<<d[1]<<endl;
    return 0;
}

從頭部插入元素,不會(huì)增加新元素,只將原來(lái)有的元素覆蓋。

#include<iostream>
#include<deque>
using namespace std;
int main()
{
    deque<int> d;
    d.push_back(1);
    d.push_back(2);
    d.push_back(3);
    d.push_front(10);//d.insert(d.begin()+1, 10);
    d.push_front(20);//d.insert(d.begin()+2, 20);
    cout<<d[0]<<" "<<d[1]<<" "<<d[2]<<endl;
    return 0;
}

遍歷

#include<iostream>
#include<deque>
using namespace std;
int main()
{
    deque<int> d;
    d.push_back(1);
    d.push_back(2);
    d.push_back(3);
    for(int i = 0; i < d.size(); i ++)
        cout<<d[i]<<" ";
    cout<<endl;
    deque<int>::iterator it;
    for(it = d.begin(); it != d.end(); it ++)
        cout<<*it<<" ";
    cout<<endl;
    deque<int>::reverse_iterator rit;
    for(rit = d.rbegin(); rit != d.rend(); rit ++)
        cout<<*rit<<" ";
    cout<<endl;
    return 0;
}

刪除元素

可以從雙端隊(duì)列的手部,尾部,中部刪除元素,并可以清空雙端隊(duì)列容器

#include<iostream>
#include<deque>
using namespace std;
int main()
{
    deque<int> d;
    for(int i = 1; i < 6; i ++)
        d.push_back(i);
    d.pop_front();
    d.pop_front();
    deque<int>::iterator it;
    for(it = d.begin(); it != d.end(); it ++)
        cout<<*it<<" ";
    cout<<endl;
    d.pop_back();
    for(it = d.begin(); it != d.end(); it ++)
        cout<<*it<<" ";
    cout<<endl;
    d.erase(d.begin()+1);
    for(it = d.begin(); it != d.end(); it ++)
        cout<<*it<<" ";
    cout<<endl;
    d.clear();
    cout<<d.size()<<endl;
    return 0;
} 

以上就是淺談C++STL之雙端隊(duì)列容器的詳細(xì)內(nèi)容,更多關(guān)于C++STL之雙端隊(duì)列容器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳情介紹C++之命名空間

    詳情介紹C++之命名空間

    這篇文章主要詳情介紹了C++命名空間,命名空間的出現(xiàn)就是為了解決名稱沖突問(wèn)題,對(duì)此感興趣的朋友可以參考下面文章
    2021-09-09
  • C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲(單人版)

    C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲(單人版)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)貪吃蛇游戲單人版,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C++詳細(xì)實(shí)現(xiàn)完整圖書(shū)管理功能

    C++詳細(xì)實(shí)現(xiàn)完整圖書(shū)管理功能

    隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,計(jì)算機(jī)應(yīng)用的普及,利用計(jì)算機(jī)對(duì)圖書(shū)館的日常工作進(jìn)行管理勢(shì)在必行,本篇文章涵蓋一個(gè)圖書(shū)管理系統(tǒng)的全部實(shí)現(xiàn)代碼,大家可以查缺補(bǔ)漏,提升水平
    2022-05-05
  • 使用OpenCV檢測(cè)圖像中的矩形

    使用OpenCV檢測(cè)圖像中的矩形

    這篇文章主要為大家詳細(xì)介紹了使用OpenCV檢測(cè)圖像中的矩形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • C++用new創(chuàng)建對(duì)象和不用new創(chuàng)建對(duì)象的區(qū)別解析

    C++用new創(chuàng)建對(duì)象和不用new創(chuàng)建對(duì)象的區(qū)別解析

    在C++用new創(chuàng)建對(duì)象和不用new創(chuàng)建對(duì)象是有區(qū)別的,不知你是否清楚的了解它們到底有什么樣的區(qū)別呢?下面小編就用示例來(lái)告訴大家吧,需要的朋友可以過(guò)來(lái)參考下
    2013-07-07
  • C語(yǔ)言實(shí)現(xiàn)鏈棧的步驟

    C語(yǔ)言實(shí)現(xiàn)鏈棧的步驟

    鏈棧是棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),鏈??梢杂脝捂湵淼念^插法實(shí)現(xiàn),本文主要講述了如何用c語(yǔ)言去實(shí)現(xiàn)鏈棧,感興趣的朋友可以了解下
    2021-05-05
  • C/C++?Qt?StatusBar底部狀態(tài)欄應(yīng)用教程

    C/C++?Qt?StatusBar底部狀態(tài)欄應(yīng)用教程

    Qt窗體中默認(rèn)會(huì)附加一個(gè)QstatusBar組件,狀態(tài)欄組件位于主窗體的最下方,其作用是提供一個(gè)工具提示功能。本文主要介紹了StatusBar底部狀態(tài)欄的應(yīng)用教程,需要的同學(xué)可以學(xué)習(xí)一下
    2021-12-12
  • QT實(shí)現(xiàn)用戶登錄注冊(cè)功能

    QT實(shí)現(xiàn)用戶登錄注冊(cè)功能

    這篇文章主要為大家詳細(xì)介紹了QT實(shí)現(xiàn)用戶登錄注冊(cè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語(yǔ)言棧順序結(jié)構(gòu)實(shí)現(xiàn)代碼

    C語(yǔ)言棧順序結(jié)構(gòu)實(shí)現(xiàn)代碼

    一個(gè)能夠自動(dòng)擴(kuò)容的順序結(jié)構(gòu)的棧 ArrStack 實(shí)例 (GCC編譯),有需要的朋友可以參考一下
    2013-10-10
  • C語(yǔ)言詳細(xì)分析講解struct與union使用方法

    C語(yǔ)言詳細(xì)分析講解struct與union使用方法

    最近開(kāi)始自學(xué)C語(yǔ)言,從最基礎(chǔ)部分的開(kāi)始學(xué)起。今天看書(shū)的時(shí)候注意到了struct和union似乎很像,除了名字不同,看起來(lái)幾乎沒(méi)有區(qū)別。<BR>既然C中定義了struct和union兩個(gè)關(guān)鍵字,那么它們肯定是有區(qū)別的,在查了一些資料之后我來(lái)總結(jié)一下他們的使用
    2022-04-04

最新評(píng)論

甘德县| 潢川县| 永顺县| 中方县| 中超| 平武县| 鲜城| 蒲江县| 新邵县| 军事| 正蓝旗| 商水县| 棋牌| 化德县| 宁陕县| 麟游县| 耿马| 策勒县| 社会| 红桥区| 阜康市| 富川| 巴林右旗| 静安区| 井研县| 酒泉市| 屯门区| 鲁甸县| 安康市| 河北区| 茌平县| 宝山区| 太仓市| 桦川县| 富锦市| 益阳市| 商南县| 通山县| 临安市| 曲松县| 林州市|