




已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第十一章標(biāo)準(zhǔn)模板庫(STL)庫(library)是一系列程序組件的集合,它們可以在不同的程序中重復(fù)使用。庫函數(shù)設(shè)計的第一位的要求就是通用性,模板(template)為通用性帶來了不可估量的前景,我們可以在使用模板時才對某些類型作選擇。模板是標(biāo)準(zhǔn)C+實現(xiàn)代碼復(fù)用的有力工具,特別是在有關(guān)數(shù)據(jù)結(jié)構(gòu)的算法方面。為程序員提供大量實用的庫是C+的又一特色。標(biāo)準(zhǔn)模板庫(StandardTemplateLibrary)是ANSI/ISOC+最有特色、最實用的部分之一。STL包含了容器類(container)、迭代子(iterator)和算法(algorithm)三個部分。泛型算法(genericalgorithm)和函數(shù)對象(functionobject)的概念與使用使算法擺脫了對不同類型數(shù)據(jù)個性操作的依賴,這樣就可以編出更具通用性的算法。11.1標(biāo)準(zhǔn)模板庫簡介11.3順序容器11.2迭代子類11.5容器適配器11.7VC+中的STL11.6泛型算法與函數(shù)對象11.4關(guān)聯(lián)容器第十一章標(biāo)準(zhǔn)模板庫(STL)11.1標(biāo)準(zhǔn)模板庫簡介容器類是管理序列的類,是容納一組對象或?qū)ο蠹念?。通過由容器類提供的成員函數(shù),可以實現(xiàn)諸如向序列中插入元素,刪除元素,查找元素等操作,這些成員函數(shù)通過返回迭代子來指定元素在序列中的位置。STL提供了一個標(biāo)準(zhǔn)化的模板化的對象容器庫,包含多種數(shù)據(jù)結(jié)構(gòu)及其算法,可以節(jié)省大量的時間和精力,而且程序是高質(zhì)量的。迭代子是面向?qū)ο蟀姹镜闹羔?,它提供了訪問容器或序列中每個對象的方法。這樣就可以把算法用于容器所管理的序列。泛型算法不依賴于具體的容器,通用的算法更易于擴(kuò)充。泛型算法中采用函數(shù)對象(functionobject)引入不同情況下同一算法的差異。它沒有使用繼承和多態(tài),避免了虛函數(shù)的開銷,使STL效率更高。11.1標(biāo)準(zhǔn)模板庫簡介容器分為三大類:標(biāo)準(zhǔn)庫容器類說明順序容器vector(參量)deque(雙端隊列)list(列表)從后面快速插入與刪除,直接訪問任何元素從前面或后面快速插入與刪除,直接訪問任何元素從任何地方快速插入與刪除,雙鏈表關(guān)聯(lián)容器set(集合)multiset(多重集合)map(映射)multimap(多重映射)快速查找,不允許重復(fù)值快速查找,允許重復(fù)值一對一映射,基于關(guān)鍵字快速查找,不允許重復(fù)值一對多映射,基于關(guān)鍵字快速查找,允許重復(fù)值容器適配器stack(棧)queue(隊列)priority_queue(優(yōu)先級隊列)后進(jìn)先出(LIFO)先進(jìn)先出(FIFO)最高優(yōu)先級元素總是第一個出列11.1標(biāo)準(zhǔn)模板庫簡介順序容器和關(guān)聯(lián)容器稱為第一類容器(first-classcontainer)。另外有四種容器稱為近容器(nearcontainer):C語言風(fēng)格數(shù)組、字符串string、操作1/0標(biāo)志值的bitset和進(jìn)行高速數(shù)學(xué)矢量運算的valarray。它們雖然提供與第一類容器類似的功能,但沒有全部功能。STL也使容器提供類似的接口。許多基本操作是所有容器都適用的,而有些操作則適用于類似容器的子集。這樣就可以用新的類來擴(kuò)展STL。這些函數(shù)和運算符可通稱為容器的接口。表11.2所有標(biāo)準(zhǔn)庫容器共有的函數(shù)提供容器默認(rèn)初始化的構(gòu)造函數(shù)。通常每個容器都有幾個不同的構(gòu)造函數(shù),提供容器不同的初始化方法將容器初始化為現(xiàn)有同類容器副本的構(gòu)造函數(shù)撤消容器時,進(jìn)行內(nèi)存處理判容器是否為空,空返回true,不空返回false返回容器中最多允許的元素量返回容器當(dāng)前元素量默認(rèn)構(gòu)造函數(shù)拷貝構(gòu)造函數(shù)析構(gòu)函數(shù)empty()max_size()size()說明標(biāo)準(zhǔn)庫容器共有的函數(shù)將一個容器賦值拷貝給另一個同類容器交換兩個容器的元素如果前面的容器小于后面的容器,則返回true,否則返回false,不適用于priority_queue如果前面的容器小于等于后面的容器,則返回true,否則返回false,不適用于priority_queue如果前面的容器大于后面的容器,則返回true,否則返回false,不適用于priority_queue如果前面的容器大于等于后面的容器,則返回true,否則返回false,不適用于priority_queue如果前面的容器等于后面的容器,則返回true,否則返回false,不適用于priority_queue如果前面的容器不等于后面的容器,則返回true,否則返回false,不適用于priority_queueoperator=swap()operatoroperatoroperator=operator=operator!=說明標(biāo)準(zhǔn)庫容器共有的函數(shù)11.1標(biāo)準(zhǔn)模板庫簡介11.1標(biāo)準(zhǔn)模板庫簡介獲得指向被控序列開始處的迭代子,引用容器第一個元素獲得指向被控序列末端的迭代子,引用容器最后一個元素的后繼位置獲得指向被控序列末端的反轉(zhuǎn)型迭代子,引用容器最后一個元素。實際上這是該容器前后反轉(zhuǎn)之后的begin()獲得指向被控序列開始處的反轉(zhuǎn)型迭代子,引用容器第一個元素的前導(dǎo)位置。實際
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 縮句 教學(xué)課件
- 叮當(dāng)老師教學(xué)課件
- 教育整頓說課課件
- 教學(xué)課件大學(xué)怎么設(shè)計
- 【阜新】2025年遼寧阜新市事業(yè)單位招聘工作人員195人筆試歷年典型考題及考點剖析附帶答案詳解
- 教育扶貧政策班會課件
- 【河池】2025年廣西河池羅城仫佬族自治縣醫(yī)療保障局招聘2人筆試歷年典型考題及考點剖析附帶答案詳解
- 文藝論壇活動方案
- 春季種植活動活動方案
- 春節(jié)體育活動活動方案
- 臺球廳桌球俱樂部創(chuàng)業(yè)計劃書課件模板
- 人工智能創(chuàng)業(yè)項目計劃書
- (正式版)JBT 106-2024 閥門的標(biāo)志和涂裝
- 肺結(jié)節(jié)手術(shù)的術(shù)后護(hù)理措施
- 萬豪集團(tuán)員工手冊
- 美育浸潤行動總結(jié)匯報
- 2023年貴州公務(wù)員考試申論試題(A卷)含解析
- 膽道梗阻的護(hù)理查房
- 部編版語文八年級下冊典型作文及例析
- 15D502 等電位聯(lián)結(jié)安裝
- 《企業(yè)信息管理》2023期末試題及答案
評論
0/150
提交評論