實驗教學(xué)大綱模板(面向?qū)ο蟪绦蛟O(shè)計).doc_第1頁
實驗教學(xué)大綱模板(面向?qū)ο蟪绦蛟O(shè)計).doc_第2頁
實驗教學(xué)大綱模板(面向?qū)ο蟪绦蛟O(shè)計).doc_第3頁
實驗教學(xué)大綱模板(面向?qū)ο蟪绦蛟O(shè)計).doc_第4頁
實驗教學(xué)大綱模板(面向?qū)ο蟪绦蛟O(shè)計).doc_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

甘肅政法學(xué)院計算機科學(xué)與技術(shù)專業(yè)本科課程實驗教學(xué)大綱面向?qū)ο蟪绦蛟O(shè)計實驗一、面向?qū)ο蟪绦蛟O(shè)計課程實驗教學(xué)基本要求面向?qū)ο蟪绦蛟O(shè)計是一門理論和實踐結(jié)合及其緊密的學(xué)科,因此在課程的教學(xué)活動中需要采取多種教學(xué)手段與方法,以達到良好的教學(xué)效果。面向?qū)ο蟪绦蛟O(shè)計的實驗教學(xué)是理論聯(lián)系實際的重要環(huán)節(jié),是理論課堂教學(xué)的補充和繼續(xù)。因此,該課程的實驗教學(xué)要求學(xué)生通過實驗課程的學(xué)習,完成實驗指導(dǎo)書具體規(guī)定的各項實驗內(nèi)容,通過實驗使學(xué)生實現(xiàn)正確和熟練地掌握刑事化驗的實驗技能和基本操作,提高學(xué)生動手能力。二、實驗項目總表序號實驗項目名稱學(xué)時數(shù)項目類別項目類型1Visual Studio集成環(huán)境及C+程序的輸入、調(diào)試和運行4演示實驗必做2類和對象、繼承和派生6演示實驗必做3多態(tài)性和虛函數(shù)6演示實驗必做4運算符重載6演示實驗必做5STL應(yīng)用8演示實驗必做三、實驗內(nèi)容實驗一 Visual Studio集成環(huán)境及C+程序的輸入、調(diào)試和運行(一)實驗?zāi)康呐c要求1.了解和使用VC集成開發(fā)環(huán)境2.熟悉VC環(huán)境的基本命令和功能鍵,熟悉常用的功能菜單命令3.學(xué)習使用VC+環(huán)境的幫助4.學(xué)習完整的C+程序開發(fā)過程5.理解簡單的C+程序結(jié)構(gòu)(二)實驗內(nèi)容 1.熟悉Visual C+實驗環(huán)境2.控制臺應(yīng)用3. Windows應(yīng)用4.編寫簡單的計算程序(三)實驗器材及設(shè)備1.硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實驗步驟與方法題目1 熟悉Visual C+實驗環(huán)境實驗步驟(1)啟動Developer Studio,看看初始化界面由哪些部分組成(2)查看各菜單項,看看都有哪些子菜單和命令(3)將鼠標放置于各工具條圖標上,系統(tǒng)會自動顯示該圖標代表的命令含義,了解一下都有哪些命令。(4)在任意工具條上單擊鼠標右鍵,彈出式菜單上將顯示所有可用的工具條,選擇其中沒有對號()的項,看看有什么效果,再選擇有對號的項,又有什么效果?(5)將鼠標移動到任意工具條上,將鼠標放到圖標間隙,按下鼠標左鍵不放,移動鼠標到屏幕中間,有什么現(xiàn)象發(fā)生?再將它拖回到原來位置,有什么現(xiàn)象發(fā)生?(6)將鼠標移動到左邊的工作區(qū)窗口,按下鼠標左鍵不放,移動鼠標到屏幕中間,有什么現(xiàn)象發(fā)生?再將它拖回到原來位置,有什么現(xiàn)象發(fā)生?(7)將鼠標移動到下邊的輸出窗口,按鼠標右鍵,彈出一個菜單,選擇其中的菜單項”Hide”,結(jié)果如何?要重新顯示該窗口,選擇菜單View|Output,窗口是不是又顯示出來了?(8)學(xué)習使用幫助系統(tǒng)。如果你用的是Visual C+5.0,則在工作區(qū)窗口的InfoView中選擇你感興趣的內(nèi)容,雙擊它,在文檔區(qū)顯示具體的幫助信息。如果你用的是Visual C+6.0,選擇菜單Help|Contents,啟動MSDN聯(lián)機幫助系統(tǒng),學(xué)習使用該幫助系統(tǒng)。聯(lián)機幫助系統(tǒng)是一個相對獨立的程序,它和Developer Studio是兩個程序,但是它的啟動和停止都受Developer Studio影響。MSDN聯(lián)機幫助系統(tǒng)運行的前提條件是Developer Studio在運行。(9)選File|Exit退出Developer Studio。題目2 控制臺應(yīng)用 用AppWizard建立一個控制臺應(yīng)用,在終端上輸出”Hello”。術(shù)語:“控制臺應(yīng)用程序”是一個在DOS窗口中運行的基于字符的程序。由于這種模式的應(yīng)用程序比Windows程序簡單,我們先選擇利用Visual C+來建立這樣一個應(yīng)用,這樣使得我們可以將精力先投入到學(xué)習使用C+編程語言,而不需要把過多的精力投入到學(xué)習復(fù)雜的Windows編程中去。實驗步驟1)創(chuàng)建第一個應(yīng)用首先創(chuàng)建一個項目(project),項目將代表你的應(yīng)用,存放你應(yīng)用的所有信息,包括源文件、資源文件、編譯連接設(shè)置等。創(chuàng)建項目的步驟為:(1)啟動Developer Studio(2)從主菜單中選擇File|New,將顯示出New對話框(3)選擇Projects標簽,并從列表中單擊Win32 Console Application(4)在“Location”編輯框中輸入你的工作目錄名稱,如c:studentyour_name(問你的指導(dǎo)教師)(5)在對話框的右上角的“project name”編輯框內(nèi)鍵入項目的名字,如”Hello”,系統(tǒng)將自動為你的項目分配一個默認的目錄(6)單擊OK繼續(xù)(7)如果是VC 6.0,系統(tǒng)將顯示一個詢問項目類型的程序向?qū)?,選擇“an empty project”(8)單擊Finish或OK結(jié)束配置,創(chuàng)建應(yīng)用程序這時系統(tǒng)為你創(chuàng)建一個新的項目,并且在左邊的工作區(qū)窗口中將出現(xiàn)你項目的名字。工作區(qū)窗口除原來的InfoView標簽外又增加了兩個標簽(如果是Visual C+6.0,則沒有InfoView標簽):ClassView和FileView。ClassView從類的角度顯示項目中建立的各個類,雙擊某個類名將會在右邊的文檔顯示區(qū)顯示類的定義文件并把文件的當前位置定位到所選的類;FileView顯示構(gòu)成項目的各個文件,選擇某一文件將會在右邊的文檔顯示區(qū)顯示文件內(nèi)容;InfoView是VC5的幫助文件目錄,在這里可以選擇所要獲取幫助的標題,在右邊將顯示幫助內(nèi)容。2)編輯你的第一個C+源程序用下面的方法在你創(chuàng)建的項目中添加一個文件:(1)在主菜單上選擇File|New(2)在New對話框中選擇File標簽,單擊“C+ Source File”(3)選中Add to Project復(fù)選框(4)在右邊的File name編輯框中為文件指定一個名字,如Hello,系統(tǒng)將自動為你加上后綴.cpp。新的空白文件將自動打開,顯示在文檔顯示區(qū)。在文件中輸入以下內(nèi)容(不包括上下兩條橫線):/hello world example#include int main() cout hello! endl ;return 0;/正常返回仔細檢查你輸入的內(nèi)容,確保內(nèi)容正確常用編輯命令雖然許多編輯命令可以通過菜單和工具欄實現(xiàn),但大量的編輯命令都可以通過鍵盤實現(xiàn)。以下命令通常用鍵盤實現(xiàn):l 撤消前一次操作。當你進行了一次錯誤的操作時,可以通過敲擊鍵盤上的Ctrl+Z完成;l 重復(fù)前一次操作。通過敲擊Ctrl+Y實現(xiàn)l 剪切一行。用Ctrl+L來刪除一行并將它放到剪切板中l(wèi) 剪切。將選中的文本刪除并將它放到剪切板中,用Ctrl+X實現(xiàn)l 復(fù)制。將選中的文本復(fù)制到剪切板中,用Ctrl+C實現(xiàn)l 粘貼。將剪切板中的內(nèi)容放到編輯器中文本的當前位置處(由光標指示)。,用Ctrl+V實現(xiàn)要想了解關(guān)于鍵盤操作命令的完整列表,可以選擇Help菜單下的Keyboard Map。你沒有必要記住所有的命令,有些根本不常用。3)保存你的源文件單擊工具欄中的”save”圖標,或者選擇File|Save來保存你的文件。C+源文件的擴展名為.cpp。擴展名非常重要,Developer Studio根據(jù)文件的擴展名來區(qū)分文件類型,并且根據(jù)文件類型提供相應(yīng)的編輯幫助(如正確的語法高亮顯示)。4)編譯、連接得到可執(zhí)行程序編輯結(jié)束后,仔細檢查你輸入的內(nèi)容,看有無錯誤。確認沒有錯誤之后,選擇主菜單的Build|Build Hello.exe來編譯你的項目(也可以按功能鍵F7)。如果你輸入的內(nèi)容沒有錯誤,那么,在屏幕下方的輸出窗口將會顯示:hello.exe 0 error(s), 0 warning(s)5)如果在編譯時得到錯誤或警告,是你的源文件出現(xiàn)錯誤,再次檢查你的源文件,看是否有錯誤,改正它。6)改正源程序中的錯誤編譯的錯誤會在Developer Studio的下方的輸出窗口顯示出來,逐個查看這些錯誤的內(nèi)容,用鼠標雙擊,光標可以自動移動到發(fā)生錯誤的源程序的相應(yīng)地點,仔細檢查你的源程序,改正發(fā)生錯誤的地方,注意是否否遺留了分號、引號或括號等。改正后,再重復(fù)步驟4)的操作,直到編譯連接通過為止。7)運行你的第一個程序你可以有三種方式運行你的程序:l 在開發(fā)環(huán)境中運行程序選擇Build|Execute hello.exe(或者Ctrl+F5),在開發(fā)環(huán)境中執(zhí)行你的程序。程序運行以后將顯示一個類似于DOS的窗口,在窗口中輸出一行“hello”,緊接著在下面顯示“Press any key to continue”,這句話是系統(tǒng)提示你按任意鍵退出當前運行的程序,回到開發(fā)環(huán)境中。按任意鍵,窗口關(guān)閉,退回到Visual C+開發(fā)環(huán)境。我們實驗中將用這種方式運行程序。l 在DOS環(huán)境下運行程序打開DOS窗口,改變工作路徑到項目目錄,該目錄是你在創(chuàng)建目錄時指定的。如果你不記得了,可以在Developer Studio中的工作區(qū)窗口中選擇項目名稱(這里是“hello files”),然后選擇菜單View|Properties,將可以顯示出項目路徑。切換到debug子目錄下,運行hello.exe,程序?qū)⑤敵觯篽ello。l 在Windows環(huán)境下運行程序打開Windows的資源管理器,找到程序所在的目錄,運行它。你看到的結(jié)果是怎樣的?控制臺應(yīng)用補充:指針和引用請重復(fù)以上步驟,調(diào)試下面的程序段:#include void main()int x,y;x=5;int & refx=x;cout輸出x的值和地址:endl;coutxendl;cout&xendl;cout輸出引用refx的值和地址:endl;coutrefxendl;cout&refxendl;cout通過引用給x賦值,并輸出:endl;refx=6;coutxendl;cout將y值賦給refx,并輸出x,refx,&refx:endl;y=7;refx=y;coutxendl;coutrefxendl;cout&refxendl;查看引用的地址:1、編譯 連接 后,在int & refx=x; 和 cout輸出x的值和地址:TextOut(50,50,Hello, World);(5)按Ctrl+s或者選菜單File|Save來保存所作的修改5)編譯連接并運行重新編譯連接該項目,運行程序,你可以用Ctrl+F5直接運行程序,系統(tǒng)將詢問你是否重新編譯該項目,回答“是(Yes)”,如果有編譯錯誤,仔細檢查你加的一句話,是否有錯。當編譯連接通過后,系統(tǒng)會自動運行該程序。結(jié)果與上面有什么不同?經(jīng)過上述修改后,程序可以輸出一行文字“Hello, World”。這是你實現(xiàn)的第一個Windows程序!是不是很簡單?!不要擔心有很多不懂的地方,后面的實驗中你會慢慢理解?,F(xiàn)在你應(yīng)該會覺得:哦,原來Windows程序的開發(fā)這么簡單!題目4、編寫簡單的計算程序輸入圓的半徑,計算圓的周長和面積并輸出。測試數(shù)據(jù)輸入:2輸出:The perimeter of the circle : 12.5664The area of the circle : 12.5664輸入:10輸出:The perimeter of the circle : 62.8318The area of the circle : 314.159實驗步驟1) 創(chuàng)建一個控制臺項目選擇菜單File|New,在Projects標簽下選擇Windows32 Console Application,輸入項目名稱“circle”,然后按OK2) 在項目中增加一個文件選擇菜單File|New,在Files標簽下選擇C/C+ Source File,輸入文件名稱“circle”,然后按OK3)在文件中輸入以下內(nèi)容/-/該程序讓用戶輸入圓的半徑Radius,輸出圓的周長Perimeter和面積Area#include #include const double PI = 3.14159;/定義一個常量PIint main() int radius;double perimeter, area;cout radius;perimeter = 2 * PI * radius;/周長=2Rarea = PI * pow(radius, 2);/面積=R2cout The perimeter of the circle : perimeter endl;cout The area of the circle : area endl;return 0;注:power(radius,2)表示求radius的平方,power(x, y)是系統(tǒng)預(yù)定義的函數(shù),該函數(shù)計算x的y次方。該函數(shù)的原型在文件math.h中說明。4)編譯、連接并運行程序如果你輸入的程序有誤,用下面的方法定位并修改錯誤。直到編譯連接通過。運行程序,測試數(shù)據(jù)。編譯和連接錯誤定位l 開發(fā)環(huán)境下方的輸出窗口(Output)顯示編譯和連接過程中出現(xiàn)的錯誤,錯誤信息包括:錯誤出現(xiàn)的文件名、行號、錯誤代碼。l 如果不懂錯誤消息,將光標移動到該錯誤信息,按F1,就可以顯示該錯誤的幫助信息。l 在output窗口,雙擊錯誤或者選擇該錯誤再按ENTER鍵,系統(tǒng)自動將光標移動到發(fā)生錯誤的源程序行,你然后就可以改正錯誤。F4鍵可以選擇并定位下一個錯誤(五)注意事項1.Visual Studio C+的運行環(huán)境2.程序的Debug調(diào)試方法 (六)實驗要求1.熟悉Visual Studio C+的運行環(huán)境2.學(xué)習完整的C+程序開發(fā)過程3.學(xué)習控制臺應(yīng)用4.學(xué)習Windows應(yīng)用實驗二 類和對象、繼承和派生(一)實驗?zāi)康呐c要宋體加粗小四。求1.理解面向?qū)ο蟪绦蛟O(shè)計方法的基本原理及主要特點抽象、封裝、繼承。2.理解類和對象的概念以及如何利用類來解決具體問題。3.理解類的繼承與派生4.理解不同繼承方式下的基類成員的訪問控制 5.理解添加派生類的構(gòu)造和析構(gòu)函數(shù)的方法 (二)實驗內(nèi)容1.構(gòu)造函數(shù)和析構(gòu)函數(shù)2.派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)3.觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行過程(三)實驗器材及設(shè)備1.硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實驗步驟與方法1.構(gòu)造函數(shù)和析構(gòu)函數(shù)1.1創(chuàng)建項目的步驟為:啟動Developer Studio從主菜單中選擇File|New,將顯示出New對話框選擇Projects標簽,并從列表中單擊Win32 Console Application(1)在“Location”編輯框中輸入你的工作目錄名稱,如c:studentyour_name(問你的指導(dǎo)教師)(2)在對話框的右上角的“project name”編輯框內(nèi)鍵入項目的名字,如”Hello”,系統(tǒng)將自動為你的項目分配一個默認的目錄(3)單擊OK繼續(xù)(4)如果是VC 6.0,系統(tǒng)將顯示一個詢問項目類型的程序向?qū)Вx擇“an empty project”(5)單擊Finish或OK結(jié)束配置,創(chuàng)建應(yīng)用程序1.2構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行#include class scorepublic:score(int x,int y)sc1=x;sc2=y;coutconstructing score : x yendl;score()coutdestructing score: sc1 sc2endl;protected:int sc1;int sc2;class student public:/student(int id):stusc(88,99)/student(int id):xy(20*id)student(int id):english(55),stusc(88,99) noid=id; /coutconstructing a student,id : noidendl; coutconstructing a student,id : noid english: englishendl; student() coutdestructing a student: noidendl; private: int noid; int english; int xy; score stusc;void main() student s1(333);coutback in mainendl; 2.派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行 啟動Developer Studio從主菜單中選擇File|New,將顯示出New對話框選擇Projects標簽,并從列表中單擊Win32 Console Application(1)在“Location”編輯框中輸入你的工作目錄名稱,如c:studentyour_name(問你的指導(dǎo)教師)(2)在對話框的右上角的“project name”編輯框內(nèi)鍵入項目的名字,如”Hello”,系統(tǒng)將自動為你的項目分配一個默認的目錄(3)單擊OK繼續(xù)(4)如果是VC 6.0,系統(tǒng)將顯示一個詢問項目類型的程序向?qū)?,選擇“an empty project”(5)單擊Finish或OK結(jié)束配置,創(chuàng)建應(yīng)用程序class Person char m_strName10; intm_nAge;public:Person(char* name,int age) strcpy(m_strName, name);m_nAge = age;coutconstructor of personm_strNameendl; Person() coutdeconstrutor of personm_strNameendl;class Employee : public Personchar m_strDept20;Person Wang;public:Employee(char *name, int age, char *dept, char *name1, int age1): Person(name,age) , Wang(name1,age1)strcpy(m_strDept, dept);coutconstructor of Employeeendl;Employee() coutdeconstrucor of Employeeendl; (五)注意事項1.觀察構(gòu)造函數(shù)和析構(gòu)函數(shù)何時調(diào)用2.基類、派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的調(diào)用順序(六)實驗要求1.掌握面向?qū)ο蟮某绦蛟O(shè)計思想2.掌握類的定義。3.掌握對象的聲明和引用。4.掌握具有不同訪問屬性的成員的訪問方式5.掌握繼承和派生的概念,派生類的定義方法。6.熟悉繼承的不同方式對基類成員的訪問控制7.掌握多重繼承的概念、定義方法、多重繼承派生類構(gòu)造函數(shù)的執(zhí)行順序先執(zhí)行所有基類的構(gòu)造函數(shù)(順序按照定義派生類時指定的各基關(guān)順序)再執(zhí)行對象成員所在類的構(gòu)造函數(shù)(順序按照它們在類中的聲明順序)最后執(zhí)行派生類構(gòu)造函數(shù)體中的內(nèi)容(七)思考題類的三種繼承方式的主要區(qū)別是什么?實驗三 多態(tài)性和虛函數(shù)(一)實驗?zāi)康呐c要宋體加粗小四。求1.了解多態(tài)性的概念2.了解虛函數(shù)的作用和使用方法3.了解純虛函數(shù)和抽象類的概念和用法(二)實驗內(nèi)容1.理解多態(tài)性的基本思想2.學(xué)習使用虛函數(shù)實現(xiàn)動態(tài)多態(tài)性(三)實驗器材及設(shè)備1.硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實驗步驟與方法1、多態(tài)性編程實例#include class chuzhongpublic:chuzhong(double x,double y):x1(x),y1(y)virtual doublesum()double score;score=x1+y1;return score;protected:double x1,y1;class gaozhong :public chuzhongpublic:gaozhong(double x,double y,double z):chuzhong(x,y),z1(z)virtual doublesum() double score;score=x1+y1+z1;return score;protected: doublez1;void fn(chuzhong & chu)coutchu.sum()endl;void main()chuzhong cz(85.5,95.5);gaozhong gz(75.5,78.5,80.5);fn(cz);fn(gz);(五)注意事項1.虛函數(shù)的定義2.實現(xiàn)多態(tài)性的機制(六)實驗要求1.掌握多態(tài)性的概念2.掌握虛函數(shù)的作用和使用方法3.掌握純虛函數(shù)和抽象類的概念和用法4.程序格式規(guī)范,程序運行正確5.認真書寫實驗報告,如實填寫各項實驗內(nèi)容(七)思考題 虛函數(shù)是如何實現(xiàn)多態(tài)性的?實驗四 運算符重載(一)實驗?zāi)康呐c要宋體加粗小四。求理解運算符重載的概念(二)實驗內(nèi)容掌握運算符重載的方法并學(xué)會使用(三)實驗器材及設(shè)備1.硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實驗步驟與方法運算符重載程序設(shè)計:#include class Complexdouble m_fReal, m_fImag;public:Complex(double r = 0, double i = 0): m_fReal(r), m_fImag(i)double Real()return m_fReal;double Imag()return m_fImag;Complex operator +(Complex&);Complex operator +(double);Complex operator =(Complex); Complex Complex:operator + (Complex &c)/ 重載運算符 Complex temp;temp.m_fReal = m_fReal+c.m_fReal;temp.m_fImag = m_fImag+c.m_fImag;return temp;Complex Complex:operator + (double d)/ 重載運算符Complex temp;temp.m_fReal = m_fReal+d;temp.m_fImag = m_fImag;return temp;Complex Complex:operator = (Complex c)/ 重載運算符m_fReal = c.m_fReal;m_fImag = c.m_fImag;return *this;void main()Complex c1(3,4),c2(5,6),c3;cout C1 = c1.Real() +j c1.Imag() endl;cout C2 = c2.Real() +j c2.Imag() endl;c3 = c1+c2;cout C3 = c3.Real() +j c3.Imag() endl;c3 = c3+6.5;cout C3 + 6.5 = c3.Real() +j c3.Imag() endl;(五)注意事項 運算符重載的規(guī)則(六)實驗要求 掌握運算符重載(七)思考題 哪些運算符可以重載?實驗五 STL應(yīng)用(一)實驗?zāi)康呐c要宋體加粗小四。求1.理解類模板定義、使用方法2.vector的用法3.set的用法4.map的用法(二)實驗內(nèi)容1.vector的用法2.set的用法3.map的用法(三)實驗器材及設(shè)備1.硬件:個人微機(配置不低于:CPU為P4,主頻1.6G,內(nèi)存256MB,硬盤40GB)2.軟件:操作系統(tǒng)為WindowsXP(或2000、server2003等),工具軟件為Visual C+6.0(四)實驗步驟與方法 1.序列式容器序列式容器中元素的順序與元素值無關(guān),只與元素插入的先后次序和存放位置有關(guān)。STL預(yù)先定義好了三種序列式容器,即Vectors(向量)、Deque(雙向隊列)和List(雙向鏈表)。STL中的每種序列式容器類都內(nèi)嵌了一個iterator(迭代器)類,可以由它來定義該容器的iterator。 【例5-1】簡單應(yīng)用#include #include using namespace std;void main()vector intList;int i;intList.push_back(13); /在尾部插入元素13intList.push_back(75);intList.push_back(28);intList.push_back(35);coutLine 1: List Elements: ;for(i=0;i4;i+) /遍歷向量容器 coutintListi ; /向量容器可以象數(shù)組那樣隨機訪問coutendl;for(i=0;i4;i+) intListi *=2; /向量容器可以象數(shù)組那樣來訪問coutLine 2: List Elements: ;for(i=0;i4;i+) coutintListi ; /向量容器可以象數(shù)組那樣來訪問coutendl;vector:iterator listIt; /聲明一個迭代器對象coutLine 3: list Elements: ;for(listIt=intList.begin();listIt != intList.end();+listIt) /通過迭代器訪問向量容器 cout*listIt ;coutendl;listIt=intList.begin();+listIt;+listIt;intList.insert(listIt,88);coutLine 4: List Elements: ;for(listIt = intList.begin();listIt !=intList.end();+listIt)cout*listIt ;coutendl;運行程序輸出結(jié)果如圖5-1所示。圖5-1 例5-1運行結(jié)果使用向量容器的成員函數(shù)操作向量容器的再舉例(1)成員函數(shù)push_back ()【功能】在容器尾端加入一個新數(shù)據(jù)元素通過vector容器的構(gòu)造函數(shù)可以創(chuàng)建一個vector容器對象(方式很多種),然后對vector容器初始化賦值(可以使用成員函數(shù)push_back()在容器尾端加入元素),如果要對vector容器遍歷的話,既可以常用數(shù)組下標方式隨即訪問,也可以用迭代器方式訪問?!纠?-2】下面的例子展示了如何用數(shù)組方式訪問vector元素。#include /”vector”頭文件#include using namespace std;int main(void)vector v; /創(chuàng)建一個vector容器對象v.push_back(11); /在末端添加數(shù)據(jù)元素11v.push_back(22); v.push_back(33);for(int i = 0; i v.size(); i+)cout v i = vi endl; /下標法,隨即訪問return 0; 運行結(jié)果如圖5-2所示。圖5-2 例5-2運行結(jié)果2、成員函數(shù)insert ()【功能】在任意位置插入一個數(shù)據(jù)元素除了push_back()函數(shù)可以給vector容器尾部添加元素外,insert()函數(shù)則可以在任意位置插入元素。由于插入的時候要先將插入位置后面的元素后移,因此,與push_back函數(shù)相比,insert函數(shù)耗時比push_back函數(shù)久?!纠?-3】下面代碼就展示了如何使用insert函數(shù):#include #include using namespace std; int main(void)vector v;v.push_back(22); v.push_back(33);v.push_back(55);v.push_back(66);v.insert(v.begin() + 3, 44); / v.begin() + 3=0+3=3,在v的第3個位置插入44v.insert(v.begin(),11); v.insert(v.end(),77); for(int i = 0; i v.size(); i+) cout v i = vi endl; return 0; 運行結(jié)果如圖5-3所示。圖5-3 例5-3運行結(jié)果1、 成員函數(shù)erase()與clear()【功能】刪除元素學(xué)會了如何給vector容器添加元素以后,當然要知道怎么刪除元素了。vector容器提供了erase()函數(shù),可以用來刪除指定元素或者迭代器區(qū)間first,last)內(nèi)的元素。vector容器還提供另一個刪除元素的函數(shù)是clear()函數(shù),它在內(nèi)部調(diào)用了erase()函數(shù)將begin(),end()區(qū)間的元素全部刪除,即清空vector容器?!纠?-4】下面代碼展示了如何使用erase成員函數(shù)和clear成員函數(shù)#include #include using namespace std;void main(void)vector v; v.push_back(11);v.push_back(22);v.push_back(33);v.push_back(44);v.push_back(55);v.erase(v.begin()+1); v.erase(v.begin()+2,v.begin()+4);vector:iterator i;int j;for(i=v.begin(), j=0; i!=v.end(); i+, j+) coutv j = *i endl;v.clear(); cout vector clear()! endl;運行結(jié)果如圖5-4所示。圖5-4 例5-4運行結(jié)果/注:之前用的迭代器是正向,vector還提供了反向迭代器(reverse_iterator,相應(yīng)的有rbegin(),rend(),具體使用方法跟之前的一樣,這里就不舉例了。4、成員函數(shù)swap() 【功能】交換兩個同類型vector容器的數(shù)據(jù)元素【例5-5】下面代碼展示了如何使用swap函數(shù):#include #include using namespace std;void print(vector& v)for(int i = 0; i v.size(); i+)cout vi ;cout endl;void main(void)vector v1; v1.push_back(11);v1.push_back(22);v1.push_back(33);cout v1 = ;print(v1); vector v2;v2.push_back(44);v2.push_back(55);v2.push_back(66);cout v2 = ;print(v2);v1.swap(v2); /交換v1和v2的元素cout After swap: endl;cout v1 = ;print(v1);cout v2 = ;print(v2); 運行結(jié)果如圖5-5所示。圖5-5 例5-5運行結(jié)果5、其它幾個成員函數(shù)vector容器還提供了一些可以用于統(tǒng)計的函數(shù),可以用empty()函數(shù)來判斷容器是否為空;size()函數(shù)返回容器實際的元素個數(shù)(上面已經(jīng)有用到過);max_size()函數(shù)來獲得容器的最大元素個數(shù),capacity()函數(shù)來獲得容器當前可容納的vector元素個數(shù)(如果沒有特殊聲明容器可容納元素個數(shù)的話,該函數(shù)返回值一般跟size()是一樣的,不過如果使用reserve函數(shù)來重新調(diào)整容器可容納元素個數(shù)則會修改該函數(shù)的返回值,而不會修改size()函數(shù)的返回值), 【例5-6】下面的代碼展示了上面幾個函數(shù)的用法:#include #include using namespace std;void print(vector& v)cout - endl;cout empty = v.empt

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論