freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c高校教材第五章函數(shù)-資料下載頁(yè)

2025-05-11 21:28本頁(yè)面
  

【正文】 向量 (vector) ? 向量是一個(gè)基于模板的類 , 它存儲(chǔ)著 相同數(shù)據(jù)類型 的元素 。 ? vector是 C++STL( 標(biāo)準(zhǔn)模板類庫(kù) ) 的重要一員 , 使用時(shí)必須包含頭文件 vector。 ? 向量的模板形式: vectortype type為元素類型名 , 它可以是任何合法的數(shù)據(jù)類型 。 vector的定義 1. vectorint s。 //創(chuàng)建一空向量 2. vectorint a(10)。 //創(chuàng)建一包含 10個(gè)整型元素的向量 3. vectorint b(10,1)。 //創(chuàng)建一包含 10個(gè)整型元素的向量,并把每個(gè)元素值初始化為 1 4. vectorint c(b)。 //用另一個(gè)已經(jīng)存在的向量 b ,來(lái)創(chuàng)建一個(gè)新向量 c 5. vectorint d((), ()+3)。 // 用 b的前3個(gè)元素來(lái)初始化新創(chuàng)建的向量 d 6. int intArray[5]={9,2,7,3,12}。 vectorint intVector(intArray,intArray+5)。 //用數(shù)組來(lái)初始化向量的值 ? 向量中的遍歷器類型為:vectortype::iterator ? 輸出向量中的所有元素:兩種方法 () vectorinta(10,3)。 方法一:遍歷器方式 for (vectorint::iterator it=()。it!=()。++it) cout*it“ ”。 //指針間訪形式 方法二:下標(biāo)方式 for(int i=0。i()。++i) couta[i],。 向量常用操作 ? size():返回向量中的元素個(gè)數(shù) ? resize():修改向量的元素個(gè)數(shù):多則刪,少則增 ? front() :返回向量中第一個(gè)元素的值 ? back():返回向量中最后一個(gè)元素的值 ? clear():清空向量(不再有元素) ? empty():如果向量為空則返回 true,否則返回 false ? push_back():在向量的末尾添加一個(gè)元素 ? pop_back():刪除向量末尾的一個(gè)元素 ? begin(): Returns an iterator pointing to the beginning of the vector ? end(): Returns an iterator pointing to the end of the vector 例如: (P:88) 例如:讀入一個(gè)文件 ,文件中為一些整數(shù)(不知個(gè)數(shù))。要判斷向量中的元素有多少個(gè)兩兩相等的數(shù)對(duì)。 includeiostream includefstream includevector using namespace std。 int main() { ifstream in()。 vectorint s。 for(int a。 ina。 ) (a)。 //在 s向量最后插入一個(gè)元素 a int pair=0。 for(int i=0。 i()1。 ++i) for(int j=i+1。 j()。 ++j) if(s[i]==s[j]) pair++。 coutpair\n。 return 1。 } 二維向量 ? 描述: vectorvectortype type為元素類型名,它可以是任何合法的數(shù)據(jù)類型。 ? 向量操作尤其適合于函數(shù)參數(shù)傳遞 例如:文件 ,每行中含若干整數(shù),可以構(gòu)成一個(gè)向量。整個(gè)文件可以看成是由一組向量構(gòu)成,其中每個(gè)元素都是向量,但作為元素的向量其長(zhǎng)度參差不齊。設(shè)計(jì)一個(gè)排序程序,使得按從短到長(zhǎng)的順序輸出每個(gè)向量。 // 若干個(gè)向量按長(zhǎng)短排序 P:90 includeiostream includefstream includesstream includevector using namespace std。 typedef vectorvectorint Mat。 //定義二維向量的名稱為 Mat Mat input()。 void mySort(Matamp。 a)。 void print(const Matamp。 a)。 int main(){ Mat a = input()。 mySort(a)。 print(a)。 return 1。 } Mat input() { ifstream in()。 Mat a。 for(string s。 getline(in, s)。 ) { vectorint b。 istringstream sin(s)。 for(int ia。 sinia。 ) (ia)。 (b)。 } return a。 } istringstream是輸入 string流,它在 sstream頭文件中說(shuō)明 創(chuàng)建 sin流,其參數(shù)為 string對(duì)象 void mySort(Matamp。 a) { for(int pass=1。 pass()。 ++pass) for(int i=0。 i()pass。 ++i) if(a[i+1].size()a[i].size()) a[i].swap(a[i+1])。 }// void print(const Matamp。 a) { for(int i=0。 i()。 ++i) { for(int j=0。 ja[i].size()。 ++j) couta[i][j] 。 coutendl。 } } 內(nèi)聯(lián)函數(shù) (P:177) 1. 內(nèi)聯(lián)函數(shù)的引入 在分析問(wèn)題過(guò)程中 , 往往會(huì)得到一些處理和結(jié)構(gòu)都相對(duì)簡(jiǎn)單的 “ 小功能 ” , 用來(lái)實(shí)現(xiàn)這些“ 小功能 ” 的 函數(shù) 往往 代碼很短 , 但 使用頻率高 。 例如:下面的代碼中 , 頻繁地調(diào)用一個(gè)小函數(shù)isnumber( )來(lái)判斷輸入字符是否為數(shù)字字符 。 // : 頻繁調(diào)用一個(gè)小函數(shù) includeiostream using namespace std。 bool isnumber(char)。 // 函數(shù)聲明 int main(){ char c。 while((c=())!=39。\n39。) // 反復(fù)讀入字符 , 若為回車便結(jié)束 if(isnumber(c)) // 調(diào)用一個(gè)小函數(shù) coutyou entered a digit.\n。 else coutyou entered a nondigit.\n。 return 1。 }// bool isnumber(char ch){ return ch=39。039。 amp。amp。 ch=39。939。 ? 1 : 0。 } 2.內(nèi)聯(lián)函數(shù)的聲明 ? 內(nèi)聯(lián)函數(shù)的聲明方法: 在函數(shù)的原型聲明處加上 inline, 其格式如下: inline [類型標(biāo)識(shí)符 ] 函數(shù)名 (參數(shù)類型說(shuō)明 ); ? 注意: 對(duì)函數(shù)的內(nèi)聯(lián)聲明必須在調(diào)用之前 。 例如:上例可改寫(xiě)為: // : 內(nèi)聯(lián)函數(shù) includeiostream using namespace std。 // inline bool isnumber(char)。 // 內(nèi)聯(lián)聲明 // int main(){ for(char c。 (c=())!=39。\n39。 ) if(isnumber(c)) coutyou entered a digit.\n。 else coutyou entered a nondigit.\n。 return 1。 }// bool isnumber(char ch){ return ch=39。039。 amp。amp。 ch=39。939。 ? 1 : 0。 } 引入內(nèi)聯(lián)函數(shù)的 意義 : 編譯器看到 inline后 , 為該函數(shù)創(chuàng)建一段代碼 ,以便在后面 每次碰到該函數(shù)的調(diào)用都用相應(yīng)的代碼段來(lái)替換 。 這樣 , 內(nèi)聯(lián)函數(shù)被調(diào)用時(shí)將不會(huì)發(fā)生控制轉(zhuǎn)移 , 從而提高程序的運(yùn)行效率 。 即:內(nèi)聯(lián)函數(shù)的代碼在程序運(yùn)行時(shí)是直接嵌在調(diào)用處執(zhí)行的 。 注意: (1)對(duì)函數(shù)的內(nèi)聯(lián)聲明必須在調(diào)用之前 , 否則 ,編譯系統(tǒng)無(wú)法識(shí)別 , 仍會(huì)當(dāng)成普通函數(shù)處理 。 (2)內(nèi)聯(lián)函數(shù) 不是在調(diào)用時(shí)發(fā)生控制轉(zhuǎn)移 , 而是在編譯時(shí)將函數(shù)體嵌入在每一個(gè)調(diào)用語(yǔ)句處 。 3.內(nèi)聯(lián)函數(shù)的一些限制 ( 1) 內(nèi)聯(lián)函數(shù)體應(yīng)盡可能小 , 且要結(jié)構(gòu)簡(jiǎn)單 ,內(nèi)聯(lián)函數(shù)體內(nèi)不能含有復(fù)雜的結(jié)構(gòu)控制語(yǔ)句( 例如: switch和 while等 ) 。 如果內(nèi)聯(lián)函數(shù)體中出現(xiàn)上述語(yǔ)句 , 則編譯將無(wú)視內(nèi)聯(lián)聲明 , 只是將其視同普通函數(shù) 。 ( 2) 遞歸函數(shù)屬于結(jié)構(gòu)復(fù)雜的函數(shù) , 不能聲明成內(nèi)聯(lián)函數(shù) 。 ( 3) 內(nèi)聯(lián)函數(shù)一般適用于小函數(shù) ( 含 1—5行的代碼 ) 。 4. 內(nèi)聯(lián)函數(shù)使用的場(chǎng)合: 1) 函數(shù)體適當(dāng)小,使嵌入工作容易進(jìn)行,不會(huì)破壞原調(diào)用主體。 2) 程序中特別是循環(huán)中反復(fù)執(zhí)行該函數(shù),可使嵌入的效率相對(duì)較高。 3) 程序并不多處出現(xiàn)該函數(shù)調(diào)用,使嵌入工作量相對(duì)較少,代碼量不會(huì)劇增。
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1