真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

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

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

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

1.棧和隊(duì)列的行為特征

棧和隊(duì)列與數(shù)組或list非常相似,但是對(duì)插入、訪問和刪除元素的方式有一定的限制??蓪⒃夭迦氲绞裁次恢靡约翱梢詮氖裁次恢脛h除元素決定了容器的行為特征。
:棧是先進(jìn)后出系統(tǒng),只能從棧頂插入或者刪除元素。
隊(duì)列:隊(duì)列是先進(jìn)先出系統(tǒng),元素被插入到隊(duì)尾,從隊(duì)頭刪除,最先插入的元素最先刪除??蓪㈥?duì)列視為在電影院排隊(duì)買票的人,先加入隊(duì)列的人先離開。

2.使用STL stack類

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

#include 

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

3.使用STL queue類

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

#include 

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

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

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

#include 

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

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


網(wǎng)頁(yè)題目:C++自適應(yīng)容器是什么
當(dāng)前URL:http://weahome.cn/article/jjjpoo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部