下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Container 容器方法:。include <容器>;#include <queue>。定義容器:容器<元素類型> 容器物件名稱;queue<char> pq0; priority_queue<int> pq1; /優先權高者在前。ct.begin()表該容器的第一個位置ct.end()表該容器的尾端,最後一個位置的後面 Iterator 迭代器/用來表示位置的物件 方法:。容器<元素類別>:iterator 迭代器物件;。容器<元素類別>:const_iterator 迭代器物件;指到const容器。令
2、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預先定義之函式)。sort( st.begin(), st.
3、end() ); /升冪排序Functor 仿函式 方法:。由使用者自己定義 。STL 已定義者 (可能被重載):算術類:、 × 、÷ 、(變號)比較類:= 、邏輯類:And、Or、Not 。#include <functional> plus<Type>/plus<string> sa; string s1(“AB”), s2(“CD”), s3;sRes = sa( s1, s2 ); /sRes=>”ABCD”Iterator adapter 迭代調整器 方法:。istream、ostream/ifstream inFile(
4、 fileName.c_str() );/必須是c_string。#include <iterator>STL中的五大類iterator 。適用之泛型演算法q 1) Input:如 find(), accumulate(), equal() 等q 2) Output:如 copy() 等q 3) Forward:如 find(), swap_range(), reverse() 等q 4) Bidirectional:如 inplace_merge(), next_permutation(), reverse() 等q 5) RandomAccess:如 binary_search
5、(), sort_heap(), nth_element() 等。不適用之泛型演算法q set/map: (已排好)不能用在排序相關之泛型演算法q list:有自己一套方法 。remove() /n /remove之前:654321123456n /remove之後:654211245656n 並未真的移除掉,i.e. 執行前後其size()一樣n 迭代器 itr 指向殘蹟的第一個位置n 若要移除殘蹟則搭配 erase()Const 常數物件 方法:。const 資料型態 物件名稱=初值;/初值須給定! 。指標常數:指到常數物件/const 指標資料型態 物件名稱;/指標指到某常數物件 。co
6、nst int x=10; /x為常數整數int z=20;const int *px=&x; /px為指標,存的是x的位址Pointer:指標(儲存位址的變數) 方法:。資料型態 指標名稱;/宣告一存位址之變數並規定其指到的物件內容值之資料型態。&物件名稱 表示 物件位址指標名稱 表示 該指標指到的物件內容值 。指標的指標 int *ppx=&px; 。指標的加減指向陣列的指標進行運算才有意義,因為陣列的元素,在記憶體中一定連續 。陣列名稱其實就是常數指標*(p+2) ary2 *(ary+2) 宣告與定義 方法:。宣告會導入符號名稱,在宣告時,該物體尚未產生(i.e
7、 尚未被建立)!符號名稱在不同的環境(scope)下可重複使用,他們代表不同的物體!在同一 scope 中符號名稱必須唯一! 。定義則是為該符號名稱所代表的物體,配置記憶體,給定初值。 。Namespace Scope(名稱空間):區域及類別以外的範圍稱之!程式員可在全域範圍中,以namespace巢狀定義自己的名稱空間,因在全域中,故其成員也是全域,不論具名或無名 。具名的namespace定義:n namespace 自訂名稱 成員宣告定義 n 全名表示法:自訂名稱:成員名稱形成唯一。無具名的namespace定義n namespace 成員宣告定義 n 因為無具名,所以無法在別的檔案曝光
8、。也就是說,在別的檔案中無法使用這些成員!n 其成員只能在該檔案使用(用:成員名稱),其成員仍是全域變數(i.e. lifetime直至程式結束) 。在全域中宣告及定義之物件。namespace定義區中之物體也是全域的!記憶體配置於靜態空間,維持至程式結束。內定初使化為0(所有成員屬性都初始化為0) Reference 方法:。資料型態 物件名稱;資料型態 &物件別名=物件名稱;必須給定,給定之後就不能更改! 。通常reference用於函數之形式參數(formal parameter)。相當於傳址呼叫高效率(不用拷貝實際參數於stack上)又可保持直覺的使用方式 ( 不用使用指標運算
9、 )I/O 方法:。Inputq >>n cin >> aChar;n sfIn >> aChar;n 會略過 whitespaceq getn cin.get( aChar );n sfIn.get( aChar );n 與 >> 最大的不同處:可讀 whitespace 。Outputq <<n cout << aChar;n sfOut << aChar;q putn cout.put( aChar );n sfOut.put( aChar ); 。String Output: <<Strin
10、g inputq >>: extraction operatorn skip any leading whitespacen extract all contiguous non-whitespace charactersn the terminating whitespace character is still left in the input stream.q getline(fsIn /檔案輸入, stringBuf /存入變數, terminatingChar /停止字元,內定為n)n get all characters until meeting a termina
11、ting charactern the 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
12、the <iostream> header file.Block Input方法:。istream& read(char* buffer, int size); int inArea3;ifstream fsIn(“檔名”, ios:binary | ios:in);fsIn.read( (char *) inArea, 3*sizeof(int) );int numRead=fsIn.gcount(); / how many bytes readBlock Output 方法:。ostream& write(const char* buffer, int size
13、); int outArea3;.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-stringconst char *方法:。#include <cstring> 。cstring提供之函數:q int str
14、len(const char*) /strlen(st0) 4q int strcmp(const char*, const char*)q char* strcpy(char*, const char*)C+ string類別vector<char> 方法:。#include <string> 。st.empty() /containers method /判斷是否為空字串 。string:size_type len;len=st.size();。st.c_str() /回傳st的c-string。st2.substr(2,4) / st2子字串:2開始,4個字 “C
15、DII” st2.substr(2) / st2子字串:2開始,直到最後 “CDIII。st.push_back(E); /st ”ABCE”st2=X; /ok. st ”ABXE”st.resize(6,Z); /st ”ABXEZZ”st.insert(2,st3); /st ”ABXIIIEZZ”st.erase(4,3); / st ”ABXIZZ”。st.push_back(E); /st ”ABCE”st2=X; /ok. st ”ABXE”st.resize(6,Z); /st ”ABXEZZ”st.insert(2,st3); /st ”ABXIIIEZZ”st.erase(4,3); / st ”ABXIZZ” 。pos = st.find (“PQ”,0); / 找子字串
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度离婚协议书详述财产分配与子女抚养细节及责任2篇
- 《大学生职业生涯规划预就业指导》课件-第16章 职业岗位定位-
- 2025年福建货运从业资格证模拟试题题库及答案大全
- 2024年标准股权转让与回购协议版B版
- 2025年南昌b2从业资格证模拟考试题目
- 2025年百色货运从业资格证模拟考试题
- 第2日:《海底两万里》阅读解析版
- 暑期作业03:字音字形+词语运用+名句默写(解析版)
- 2024年甲乙双方关于多功能智能净水设备维护及技术支持服务合同
- 2024全新医疗设备搬运工安全搬运合同下载3篇
- 2025年中考道德与法治一轮教材复习-九年级下册-第一单元 我们共同的世界
- 【MOOC】中国电影经典影片鉴赏-北京师范大学 中国大学慕课MOOC答案
- 【MOOC】中药药理学-学做自己的调理师-暨南大学 中国大学慕课MOOC答案
- 陕西省西安市长安区2024-2025学年八年级上学期期中地理试卷
- 企业破产律师服务协议
- 预防火灾消防安全培训
- 2024年中国建设银行个人人民币贷款合同版B版
- 《古希腊罗马建筑》课件
- 第十五讲-新时代与中华民族共同体建设-中华民族共同体概论教案
- 肿瘤科介入治疗及护理
- 2023年国家公务员录用考试《行测》真题(行政执法)及答案解析
评论
0/150
提交评论