成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

C++自適應(yīng)容器是什么

本篇內(nèi)容介紹了“C++自適應(yīng)容器是什么”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、孝感網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5建站商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為孝感等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

前言
標準模板庫(STL)提供了一些容器(比如stack、queue、priority_queue),使用這些容器來模擬棧和隊列的行為。
這種內(nèi)部使用一種容器但呈現(xiàn)另一種容器的行為特征稱為自適應(yīng)容器。

1.棧和隊列的行為特征

棧和隊列與數(shù)組或list非常相似,但是對插入、訪問和刪除元素的方式有一定的限制。可將元素插入到什么位置以及可以從什么位置刪除元素決定了容器的行為特征。
:棧是先進后出系統(tǒng),只能從棧頂插入或者刪除元素。
隊列:隊列是先進先出系統(tǒng),元素被插入到隊尾,從隊頭刪除,最先插入的元素最先刪除。可將隊列視為在電影院排隊買票的人,先加入隊列的人先離開。

2.使用STL stack類

泛型STL容器std::stack模擬了棧的這種行為。要使用stack,必須包含頭文件:

#include <stack>

STL stack 是一個模板類。允許在頂部插入和刪除元素,而不允許訪問中間的元素。
在STL實現(xiàn)中,std::stack的定義如下:
template<class elementType, class Container=deque>class stack;
參數(shù)elementType是stack存儲的對象類型
第二個模板參數(shù)Container是stack使用的默認底層容器實現(xiàn)類。默認是使用std::deque來存儲數(shù)據(jù),但可以指定使用vector或list來存儲數(shù)據(jù)。
實例化stack
創(chuàng)建用于存儲double類型的元素的棧:
stack stackDoubles;
創(chuàng)建存儲類(如Tuna)對象的棧:
stack stackTunas;
創(chuàng)建存儲double類型元素,并且使用vector作為底層容器的棧:
stack::<double, vector >stackDoublesInVector;
使用一個stack對象的拷貝來創(chuàng)建另一個stack對象:
stack stackIntsCopy(stackInts);
stack的成員函數(shù)
stack改變了另一種容器(如deque、list或vector)的行為,通過限制元素插入或刪除的方式實現(xiàn)其功能,從而提供嚴格遵守棧機制的行為特征。
1.push
stackInts.push(25); //在棧頂插入元素
2.pop
stackInts.pop(); //刪除棧頂?shù)脑?br/>3.empty
if(stackInts.empty()){DoSomething;} //判斷棧是否為空
4.size
size_t nNum=stackInts.size(); //返回棧中的元素數(shù)
5.top
stackInts.top(); //獲得指向棧頂元素的引用

3.使用STL queue類

STL queue是一個模板類。只允許在末尾插入元素以及從開頭刪除元素;queue不允許訪問中間的元素,但可以訪問開頭和末尾的元素。
泛型STL容器std::queue模擬了隊列的這種行為。要使用queue,必須包含頭文件:

#include <queue>

std::queue的定義如下:
template<class elementType, class Container=deque>class queue;
第一個參數(shù)elementType,是queue對象包含的元素的類型。
第二個參數(shù)Container,是用于存儲其數(shù)據(jù)的集合的類型。默認情況下為deque,也可設(shè)置為list或vector。
實例化queue
創(chuàng)建存儲類型為int的隊列:
queue qIntegers;
創(chuàng)建存儲元素類型為double,且使用std::list存儲這些元素:
queue <double, list>qDoublesInList;
使用一個queue實例化另一個queue:
queue qCopy(qIntegers);
queue的成員函數(shù)
1.push
qIntegers.push(25); //在隊尾插入一個元素
2.pop
qIntegers.pop(); //將隊首的元素刪除
3.front
qIntegers.front(); //返回指向隊首的引用
4.back
qIntegers.back(); //返回指向隊尾的引用
5.empty
if(qIntegers.empty()){} //檢查隊列是否為空
6.size
size_t nNum=qIntegers.size(); //返回隊列的元素數(shù)

4.使用STL優(yōu)先級隊列priority_queue

STL priority_queue 是一個模板類,使用它,也必須包含頭文件:

#include <queue>

priority_queue與queue的不同之處在于,包含最大值的元素位于隊首(默認情況下),且只能在隊首執(zhí)行操作。
實例化
std::priority_queue類的定義如下:
template<class elementType, class Container=vector, class Compare=less> class priority_queue
第三個參數(shù)Compare指定一個二元謂詞。默認使用std::less,從大到小排序,即隊首為最大值。使用greater從小到大排序。
實例化一個整型的優(yōu)先級隊列:
priority_queue pqIntegers;
創(chuàng)建一個元素類型為double,且按從小到大的順序存儲在std::deque中的優(yōu)先級隊列:
priority_queue <int, deque, greater >pqIntegers_Inverse;
使用一個priority_queue來實例化另一個priority_queue:
pqIntegers pqCopy(pqIntegers);
priority_queue的成員函數(shù)
1.push
pqIntegers.push(10); //在優(yōu)先隊列中插入一個元素
2.pop
pqIntegers.pop(); //刪除隊首元素,即最大的元素
3.top
pqIntegers.top(); //返回隊列中隊首元素的引用(即最大的元素)
4.empty
if(pqIntegers.empty()){} //檢查是否為空
5.size
pqIntegers.size(); // 返回優(yōu)先隊列中的元素個數(shù)

“C++自適應(yīng)容器是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

文章名稱:C++自適應(yīng)容器是什么
文章分享:http://jinyejixie.com/article0/jjjpoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、Google、ChatGPT企業(yè)網(wǎng)站制作、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
宜良县| 秭归县| 肥东县| 昌邑市| 深水埗区| 塘沽区| 祥云县| 万州区| 苍溪县| 济南市| 黑龙江省| 龙胜| 中江县| 和静县| 宁陵县| 新营市| 沙洋县| 前郭尔| 汝阳县| 新绛县| 缙云县| 邵东县| 新兴县| 淳化县| 青龙| 延庆县| 沁源县| 阳原县| 灵石县| 视频| 潞城市| 大同市| 宣威市| 类乌齐县| 普兰县| 龙川县| 龙泉市| 游戏| 若尔盖县| 玉环县| 六盘水市|