C 每日積累學習整理 vector和迭代器

2021-06-21 14:21:08 字數 1164 閱讀 8233

string物件字元處理有一些很實用的小函式,用來判斷當前字元的任何char值(在cotype標頭檔案中定義):

isalnum(c) //c是字謎或數字

isalpha(c) //字母

iscntrl(c) //控制符

isdigit(c) //數字

ispunct(c) //標點

還有一些在原書第四版p/77有介紹

現代c++常用vector和迭代器取代陣列和指標,因為vector是動態的,空間不用預分配,對程式設計師來說操作訪問修改都比較容易。

當然在追求程式速度的時候,陣列和指標必不可少。

vector及迭代器操作

vector的empty(),push_back(),pop_back(),size()等操作較容易在此不做介紹。

//判斷兩個vector是否相等(核心程式)

for (vector::iterator iter1=i1.begin(),iter2=i2.begin();iter1!=i1.end()&&iter2!=i2.end();iter1++,iter2++) }

const_iterator和const的iterator物件 的區別:

前者是乙個迭代器,其自身值可變,但是不能用來改變其所指向的元素的值。

例如:vectornum(10);//宣告並初始化乙個vector

vector::const_iterator cit=num.begain();

*cit=1;//有錯,元值不能改變

++cit;//沒錯,迭代器正常操作

後者是宣告乙個const迭代器,必須初始化,而且初始化後不能改變他的值(既不能自增自減)

例如:vectornum(10);//宣告並初始化乙個vector

const vector::iterator cit=num.begain();

*cit=1;//對元素賦值,沒錯

++cit;//有錯,const型別迭代器不能自增

說到const,const引用和非const容易混淆:

const引用是指向const物件的引用:

例如:const int ival=1024;

const int &reival=ival;//沒錯,別名和原值都是const的

int &re2=ival;//有錯,試圖修改re2會導致ival改變,所以不允許

C 每日積累學習整理 操作符

算數操作符 有些算數操作表示式的求解結果未定義,會引起溢位和異常 例如 除零操作會引發異常。而結算型別為short 假設short型別儲存空間為16位 則計算結果應該在 32768 32767,超出則溢位。還有大型別向小型別隱士轉換時產生的精度缺失 小型別向大型別轉換直接轉換 例如 int a do...

c 學習積累1

1 值型別的變數本身包含他們的資料值 將儲存在棧中 而引用型別的變數包含的是指向包含資料值的記憶體塊的位置資訊 將儲存在受控的堆中 3 引用型別共分四種型別 類 介面 陣列 委派。類除了我們可以定義自己的型別外,又包括兩個比較特殊的型別object和string 它們為預定義引用型別 object是...

學習C 向量 vector

一 向量的介紹 向量vector是一種物件實體,能夠容納許多其他型別相同的元素,因此又被稱為容器。與string相同,vector 同屬於stl standard template library,標準模板庫 中的一種自定義的資料型別,可以廣義上認為是陣列的增強版。在使用它時,需要包含標頭檔案 ve...