定义容器容器

上传人:工**** 文档编号:491875989 上传时间:2023-08-30 格式:DOC 页数:5 大小:62.50KB
返回 下载 相关 举报
定义容器容器_第1页
第1页 / 共5页
定义容器容器_第2页
第2页 / 共5页
定义容器容器_第3页
第3页 / 共5页
定义容器容器_第4页
第4页 / 共5页
定义容器容器_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《定义容器容器》由会员分享,可在线阅读,更多相关《定义容器容器(5页珍藏版)》请在金锄头文库上搜索。

1、Container 容器方法:。in elude ;#in elude 。定義容器:容器 容器物件名稱; queue pq0;priority_queue pq1; /優先權高者在前。ct.begin()表該容器的第一個位置ct.end()表該容器的尾端,最 後一個位置的後面Iterator 迭代器 /用來表示位置的物件 方法:。容器 :iterator 迭代器物件 ;。容器 :const_iterator迭代器物件;指到const容器。令 itr 為某容器之迭代器+itr表移動至後一位置*itr表該位置之元素值 。字串迭代器:#include string st(“ABCD”),st1(st

2、),st2=st1,st3(3,I );string:iterator ist; iterator(泛型指標也) for ( ist=st.begin(); istst.end(); +ist ) cout *ist endl; / 映出 ist 位置的值 。 greater() 比較的函式 (STL 預先定義之函式 ) 。 sort( st.begin(), st.end() ); /升/ 冪排序Functor 仿函式 方法:。由使用者自己定義。 STL 已定義者 ( 可能被重載 ) :算術類:+、一、 X、宁、一(變號)比較類:=、工、V、三、三 邏輯類: And、 Or、 Not。 #i

3、nclude plus /plus sa; string s1(“AB”), s2( “CD”), s3;sRes = sa( s1, s2 ); /sRes=” ABCD”Iterator adapter 迭代調整器方法:。 istream、 ostream/ifstream inFile( fileName.c_str() );/必須是 c_string。 #include STL 中的五大類 iterator。適用之泛型演算法1) In put:如 fin d(), accumulate。,equal()等2) Output:女口 copy()等3) Forward:女口 find(),

4、 swap_range(), reverse。等4) Bidirectional:女口 inplace_merge(),n ext_permutatio n(), reverse。等5) RandomAccess 如 binary_search(), sort_heap(),n th_eleme nt()等。不適用之泛型演算法 set/map:(已排好)不能用在排序相關之泛型演算法 list :有自己一套方法。remove() /remove 之前:654321123456/remove 之後:654211245656 並未真的移除掉,i.e.執行前後其size()一樣 迭代器itr指向殘蹟的

5、第一個位置若要移除殘蹟則搭配 erase()Const常數物件方法:。const資料型態 物件名稱=初值;初值須給定!。指標常數:指到常數物件/const指標資料型態 物件名稱;指 標指到某常數物件。const int x=10 ;/x 為常數整數int z=20;const int *px=&x;/px為指標,存的是x的位址Pointer:指標(儲存位址的變數)方法:。資料型態*指標名稱;/宣告一存位址之變數並規定其指到的物件內容值之資料型態。&物件名稱表示物件位址*指標名稱表示該指標指到的物件內容值。指標的指標 int *ppx=&px;。指標的加減指向陣列的指標進行運算才有意義,因為陣列

6、的元素,在 記憶體中一定連續。陣列名稱其實就是常數指標*(p+2)三ary2三*(ary+2)宣告與定義方法:。宣告會導入符號名稱,在宣告時,該物體尚未產生(i.e尚未被建 立)!符號名稱在不同的環境(scope下可重複使用,他們代表不同的 物體!在同一 scope中符號名稱必須唯一!。定義則是為該符號名稱所代表的物體,配置記憶體,給定初值。Namespace Scope名稱空間):區域及類別以外的範圍稱之! 程式員可在全域範圍中,以n amespace巢狀定義自己的名稱空間,因 在全域中,故其成員也是全域,不論具名或無名。具名的 namespace定義:namespace 自訂名稱 成員宣告

7、&定義 全名表示法:自訂名稱 :成員名稱形成唯一。無具名的namespace定義namespace 成員宣告&定義 因為無具名,所以無法在別的檔案曝光。也就是說,在別的 檔案中無法使用這些成員! 其成員只能在該檔案使用(用 :成員名稱 ),其成員仍是 全域變數( i.e. lifetime 直至程式結束)。在全域中宣告及定義之物件。namespace定義區中之物體也是全 域的!記憶體配置於靜態空間,維持至程式結束。內定初使化為 0(所有成員屬性都初始化為 0)Reference方法:。資料型態 物件名稱;資料型態 &物件別名 =物件名稱;必須給定,給定之後就不能更 改!。通常referenee

8、用於函數之形式參數(formal parameter)。相當於傳址呼叫高效率(不用拷貝實際參數於stack上)又可保持 直覺的使用方式 ( 不用使用指標運算 )I/O方法:。 Inputcin aChar;sfIn aChar;會略過 whitespacegetcin.get( aChar );sfIn.get( aChar );與 最大的不同處:可讀 whitespace。 Outputcout aChar;sfOut aChar;putcout.put( aChar );sfOut.put( aChar );。 String Output: : extraction operatorski

9、p 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 characterthe terminating character is del

10、etedString 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 header file, not the header file.Block Input 方法:。 istream& read(char* buffer, int

11、 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;ofstream fsOut(檔名 ” ,ios:binary | ios:out | ios:app); fsOut.write( (char

12、 *) outArea, 3*sizeof(int) );Text file 的限制:。除非用streampos紀錄位置,否則不能使用 seek函數。因為 text file 會略過 whitespace。#include 有使用到 sewt()時。C-stri ng 三 const char *方法:。 #include 。 cstring 提供之函數:int strle n(const char*)/strle n( st0) = 4int strcmp(const char*, const char*) char* strcpy(char*, const char*)C+ string

13、類別三 vector方法:。 #include 。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 個字 “CDII”st2.substr(2) / st2 子字串:2開始,直到最後 “CDIIIst.push_back(E)/st 三” ABCEst2= X;/ok. st 三” ABXEst.resize(6,Z);/st 三” ABXEZZst.insert(2,st

14、3);/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 (“ PQ” /,0找) ;子字串string:size_typepos= st.find (“AB”,0);string:size_typepos1, pos2, pos3, pos4;pos1 = st.find_first_of( pos2 = st.find_first_not_of( pos3 = st.find_last_of( pos4 = st.find_last_not_of(B/Z2I”,2);“B/Z4I”,2);B/Z/I

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 活动策划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号