定義容器容器_第1頁
定義容器容器_第2頁
定義容器容器_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Container 容器方法:。in elude <容器 >#in elude <queue>。定義容器:容器 <元素類型 > 容器物件名稱; queue<ehar> pq0;priority_queue<int> pq1; /優先權高者在前。ct.begin()表該容器的第一個位置ct.end()表該容器的尾端,最 後一個位置的後面Iterator 迭代器 /用來表示位置的物件 方法:。容器 <元素類別 >:iterator 迭代器物件 ;。容器 <元素類別>:const_iterator迭代器物件;指到co

2、nst容器。令 itr 為某容器之迭代器+itr表移動至後一位置*itr表該位置之元素值 。字串迭代器:#include <string>string st(“ABCD”),st1(st),st2=st1,st3(3,'I ');string:iterator ist; iterator(泛型指標也) for ( ist=st.begin(); ist<st.end(); +ist ) cout << *ist << endl; / 映出 ist 位置的值 。 greater<string>() 比較的函式 (STL 預先定

3、義之函式 ) 。 sort( st.begin(), st.end() ); /升/ 冪排序Functor 仿函式 方法:。由使用者自己定義。 STL 已定義者 ( 可能被重載 ) :算術類:+、一、 X、寧、一(變號)比較類:=、工、V、三、三 邏輯類: And、 Or、 Not。 #include <functional> plus<Type> /plus<string> sa; string s1(“AB”), s2( “CD”), s3;sRes = sa( s1, s2 ); /sRes=>” ABCD”Iterator adapter 迭代

4、調整器方法:。 istream、 ostream/ifstream inFile( fileName.c_str() );/必須是 c_string。 #include <iterator>STL 中的五大類 iterator。適用之泛型演算法1) In put:如 fin d(), accumulate。,equal()等2) Output:女口 copy()等3) Forward:女口 find(), swap_range(), reverse。等4) Bidirectional:女口 inplace_merge(),n ext_permutatio n(), reverse。

5、等5) RandomAccess 如 binary_search(), sort_heap(),n th_eleme nt()等。不適用之泛型演算法 set/map:(已排好)不能用在排序相關之泛型演算法 list :有自己一套方法。remove() /remove 之前:654321123456/remove 之後:654211245656 並未真的移除掉,i.e.執行前後其size()一樣 迭代器itr指向殘蹟的第一個位置若要移除殘蹟則搭配 erase()Const常數物件方法:。const資料型態 物件名稱=初值;初值須給定!。指標常數:指到常數物件/const指標資料型態 物件名稱;指

6、 標指到某常數物件。const int x=10 ;/x 為常數整數int z=20;const int *px=&x;/px為指標,存的是x的位址Pointer:指標(儲存位址的變數)方法:。資料型態*指標名稱;/宣告一存位址之變數並規定其指到的物件內容值之資料型態。&物件名稱表示物件位址*指標名稱表示該指標指到的物件內容值。指標的指標 int *ppx=&px;。指標的加減指向陣列的指標進行運算才有意義,因為陣列的元素,在 記憶體中一定連續。陣列名稱其實就是常數指標*(p+2)三ary2三*(ary+2)宣告與定義方法:。宣告會導入符號名稱,在宣告時,該物體尚未產生

7、(i.e尚未被建 立)!符號名稱在不同的環境(scope下可重複使用,他們代表不同的 物體!在同一 scope中符號名稱必須唯一!。定義則是為該符號名稱所代表的物體,配置記憶體,給定初值。Namespace Scope名稱空間):區域及類別以外的範圍稱之! 程式員可在全域範圍中,以n amespace巢狀定義自己的名稱空間,因 在全域中,故其成員也是全域,不論具名或無名。具名的 namespace定義:namespace 自訂名稱 成員宣告&定義 全名表示法:自訂名稱 :成員名稱形成唯一。無具名的namespace定義namespace 成員宣告&定義 因為無具名,所以無法在別

8、的檔案曝光。也就是說,在別的 檔案中無法使用這些成員! 其成員只能在該檔案使用(用 :成員名稱 ),其成員仍是 全域變數( i.e. lifetime 直至程式結束)。在全域中宣告及定義之物件。namespace定義區中之物體也是全 域的!記憶體配置於靜態空間,維持至程式結束。內定初使化為 0(所有成員屬性都初始化為 0)Reference方法:。資料型態 物件名稱;資料型態 &物件別名 =物件名稱;必須給定,給定之後就不能更 改!。通常referenee用於函數之形式參數(formal parameter)。相當於傳址呼叫高效率(不用拷貝實際參數於stack上)又可保持 直覺的使用方

9、式 ( 不用使用指標運算 )I/O方法:。 Input>>cin >> aChar;sfIn >> aChar;會略過 whitespacegetcin.get( aChar );sfIn.get( aChar );與 >> 最大的不同處:可讀 whitespace。 Output<<cout << aChar;sfOut << aChar;putcout.put( aChar );sfOut.put( aChar );。 String Output: <<String input>>:

10、 extraction operatorskip any leading whitespaceextract all contiguous non-whitespace characters the terminating whitespace character is still left in the input stream.getline(fsIn /檔案輸入 , stringBuf /存入變數 , terminatingChar /停止 字元,內定為 'n')get all characters until meeting a terminating characte

11、rthe terminating character is deletedString Input: important notesThe extraction operator stops at whitespace.To read a string with spaces, we must use getline.getline( .) is a stand-alone function.The string I/O operators and functions are defined in <string> header file, not the <iostream

12、> header file.Block Input 方法:。 istream& read(char* buffer, int size);int inArea3;ifstream fsln(檔名 ”,ios:binary | ios:in); fsIn.read( (char *) inArea, 3*sizeof(int) );int numRead=fsln.gcount(); / how many bytes readBlock Output方法:。 ostream& write(const char* buffer, int size); int outArea3

13、;ofstream fsOut(檔名 ” ,ios:binary | ios:out | ios:app); fsOut.write( (char *) outArea, 3*sizeof(int) );Text file 的限制:。除非用streampos紀錄位置,否則不能使用 seek函數。因為 text file 會略過 whitespace。#include <iomanip> 有使用到 sewt()時。C-stri ng 三 const char *方法:。 #include <cstring>。 cstring 提供之函數:int strle n(const

14、 char*)/strle n( st0) = 4int strcmp(const char*, const char*) char* strcpy(char*, const char*)C+ string 類別三 vector<char>方法:。 #include <string>。st.empty() /container' s methO判斷是否為空字串 。 string:size_type len;len=st.size();。st.c_str() /回傳 st 的 c-string。st2.substr(2,4) / st2 子字串:2開始,4 個字

15、“CDII”st2.substr(2) / st2 子字串:2開始,直到最後 “CDIIIst.push_back(E')/st 三” ABCEst2= X'/ok. st 三” ABXEst.resize(6,'Z');/st 三” ABXEZZst.insert(2,st3);/st 三” ABXIIIEZZ ”st.erase(4,3);/ st 三” ABXIZZ”st.push_back( 'E' Mst 三” ABCEst2= X'/ok. st 三” ABXEst.resize(6,'Z');/st 三” ABXEZZst.insert(2,st3);/st 三” ABXIIIEZZ ”st.erase(4,3);/ st 三” ABXIZZ”pos = st.find (“ P

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論