第九章群體類和群體數(shù)據(jù)的組織ppt課件.ppt

第九章群體類和群體數(shù)據(jù)的組織ppt課件.ppt

ID:59488569

大?。?71.50 KB

頁數(shù):86頁

時間:2020-09-13

第九章群體類和群體數(shù)據(jù)的組織ppt課件.ppt_第1頁
第九章群體類和群體數(shù)據(jù)的組織ppt課件.ppt_第2頁
第九章群體類和群體數(shù)據(jù)的組織ppt課件.ppt_第3頁
第九章群體類和群體數(shù)據(jù)的組織ppt課件.ppt_第4頁
第九章群體類和群體數(shù)據(jù)的組織ppt課件.ppt_第5頁
資源描述:

《第九章群體類和群體數(shù)據(jù)的組織ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫

1、第九章群體類和群體數(shù)據(jù)的組織C++語言程序設計說明目錄群體的概念群體是指由多個數(shù)據(jù)元素組成的集合體。群體可以分為兩個大類:線性群體和非線性群體。線性群體中的元素按位置排列有序,可以區(qū)分為第一個元素、第二個元素等。非線性群體不用位置順序來標識元素。線性群體中的元素次序與其位置關系是對應的。在線性群體中,又可按照訪問元素的不同方法分為直接訪問、順序訪問和索引訪問?!谝粋€元素第二個元素第三個元素最后一個元素群體類直接訪問群體--數(shù)組類順序訪問群體--鏈表類棧類隊列類群體數(shù)據(jù)的組織插入排序選擇排序交換排序順序查找折半查找本章主要內(nèi)容模板群體類群體數(shù)據(jù)的組織小結(jié)與復

2、習建議59.1模板C++最重要的特性之一就是代碼重用,為了實現(xiàn)代碼重用,代碼必須具有通用性。通用代碼需要不受數(shù)據(jù)類型的影響,并且可以自動適應數(shù)據(jù)類型的變化。這種程序設計類型稱為參數(shù)化程序設計。模板是C++支持參數(shù)化程序設計的工具,通過它可以實現(xiàn)參數(shù)化多態(tài)性。所謂參數(shù)化多態(tài)性,就是將程序所處理的對象的類型參數(shù)化,使得一段程序可以用于處理多種不同類型的對象。函數(shù)模板類模板9.1.1函數(shù)模板函數(shù)模板可以用來創(chuàng)建一個通用功能的函數(shù),以支持多種不同形參,進一步簡化重載函數(shù)的函數(shù)體設計。定義方法:template<模板參數(shù)表>函數(shù)定義template

3、>Tabs(Tx){returnx<0?-x:x;}8其中:template為模板關鍵字。模板參數(shù)表中的類型為參數(shù)化類型,也稱可變類型,類型名為class(或typename);模板參數(shù)表中的類型也可包含普通類型。求絕對值函數(shù)的模板#includeusingnamespacestd;templateTabs(Tx){returnx<0?-x:x;}intmain(){intn=-5;doubled=-5.5;cout<

4、5求絕對值函數(shù)的模板分析編譯器從調(diào)用abs()時實參的類型,推導出函數(shù)模板的類型參數(shù)。例如,對于調(diào)用表達式abs(n),由于實參n為int型,所以推導出模板中類型參數(shù)T為int。當類型參數(shù)的含義確定后,編譯器將以函數(shù)模板為樣板,生成一個函數(shù):intabs(intx){ returnx<0?–x:x; }函數(shù)模板的重載C++規(guī)定:函數(shù)模板可以重載。它既可以用函數(shù)模板重載,也可以用普通函數(shù)重載。之所以允許重載是因為函數(shù)模板的參數(shù)T在實例化時實參類型無隱式轉(zhuǎn)換功能。下面是函數(shù)模板重載的實例:template//求兩個同類型T的變量中的最大者Tmax

5、(Tx,Ty){return(x>y)?x:y;}函數(shù)模板的重載C++規(guī)定:函數(shù)模板可以重載。它既可以用函數(shù)模板重載,也可以用普通函數(shù)重載。之所以允許重載是因為函數(shù)模板的參數(shù)T在實例化時實參類型無隱式轉(zhuǎn)換功能。下面是函數(shù)模板重載的實例:template//求兩個同類型T的變量中的最大者Tmax(Tx,Ty){return(x>y)?x:y;}上例代碼中的max(i,c)和max(f,i),由于模板函數(shù)在調(diào)用時其參數(shù)類型不同,所以編譯器報錯。欲解決上述問題,可用一普通函數(shù)重載函數(shù)模板,此時,只需聲明該普通函數(shù)的接口即可。請看下述示例代碼:tem

6、plate//函數(shù)模板的定義Tmax(Tx,Ty){return(x>y)?x:y;}doublemax(double,double);//重載上述函數(shù)模板,重載時只需給出函數(shù)接口該函數(shù)的作用是比較兩個字符串指針,而不是比較兩個指針所指向的字符串的內(nèi)容,這與我們所定義的函數(shù)模板的語義相違背。因此,此時須提供一個可以替換該函數(shù)模板實例的函數(shù),用來替換的函數(shù)稱為特定的模板函數(shù),即:char*max(char*c1,char*c2){return(strcmp(c1,c2))?(c1):(c2);}9.1.2類模板的作用使用類模板使用戶可以為類聲明

7、一種模式,使得類中的某些數(shù)據(jù)成員、某些成員函數(shù)的參數(shù)、某些成員函數(shù)的返回值,能取任意類型(包括基本類型的和用戶自定義類型)。類模板:template<模板參數(shù)表>class類名{類成員聲明}如果需要在類模板以外定義其成員函數(shù),則要采用以下的形式:template<模板參數(shù)表>類型名類名<模板參數(shù)標識符列表>::函數(shù)名(參數(shù)表)類模板的聲明templateclassStoreT&Store::getElem()例9-2類模板應用舉例#include#includeusingnamespacestd;/

8、/結(jié)構(gòu)體StudentstructStudent{i

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。