天天看點

C++ Primer 讀書筆記——字元串/向量和數組C++ Primer 讀書筆記2

C++ Primer 讀書筆記2

cctype 頭檔案中函數——處理String的方法——P82

函數 用法
isalnum(c) 如果參數是字母數字為真
isalpha(c) 如果參數是字母為真
iscntrl(c) 如果參數是控制字元為真
isdigit(c) 如果參數是數字為真
isgraph(c) 如果參數是除空格之外的列印字元為真
islower(c) 如果參數是小寫字母為真
isprint(c) 如果參數是列印字元(包括空格)為真
ispunct(c) 如果參數是标點符号為真
isspace(c) 如果參數是标準空白字元為真,如空格、進紙、換行符、回車、制表符
isupper(c) 如果參數是大寫字母為真
isxdigit(c) 如果參數是十六進制時為真
tolower(c) 如果參數是大寫字母,輸出對應的小寫字母;否則原樣輸出
toupper(c) 如果參數是小寫字母,輸出對應的大寫字母;否則原樣輸出

标準庫類型vector——P86

# include < vector>

vector< int> v1(10); //v1有10個元素,每個元素為0

vector< int> v2{10}; //v2有一個元素值為10

函數 用法
v.empty() 如果v不含有任何元素,傳回真否則傳回假。
v.size() 如果v中元素個數
v.push_back(t) 在v的末端添加一個值為t的元素。

vector對象的下标運算符可用于通路已存在的元素,而不能用于添加元素。

(常見錯誤類型為緩沖區溢出(buffer overflow))

疊代器——P95

擁有疊代器的類型同時擁有begin和end的成員,其中begin成員負責傳回指向第一個元素的疊代器。end成員則負責傳回指向容器“尾元素的下一位置”的疊代器。

如果容器為空,begin和end傳回同一個疊代器,都是尾後疊代器。

标準容器疊代器的運算符

函數 用法
*item 傳回疊代器item所指元素的引用
iter->mem 解引用iter并擷取該元素的名為mem的成員,等價于(*iter).mem
++iter 令iter訓示容器中的下一個元素
–iter 令iter所訓示容器中的上一個元素
== 判斷兩個疊代器是否相等,如果兩個疊代器指向的是同一個元素則相等;反之,不相等。
!= 判斷是否不等
因為end傳回的疊代器并不實際所訓示某個元素,是以不能對其進行遞增或解引用的操作

容器一般使用iterator和const_iterator來表示疊代器的類型

箭頭運算符把解引用和成員通路兩個操作結合在一起。it->mem和(*it).mem表達的意思是一樣的。
但凡是使用了疊代器的循環體,都不要向疊代器所屬的容器添加元素。

多元數組——P128

要使用範圍for語句處理多元數組,除了最内層的循環外,其他所有循環的控制變量都應該是引用類型。

繼續閱讀