表示物件的集合,也叫容器,是乙個類模板#include
using std::vector
迭代器型別:
vector<
int>
::iterator it;
// it能讀寫vector的元素
string::iterator it;
// it能讀寫string物件中的元素
vector<
int>
::const_iterator it;
// it能讀不能寫vector的元素
string::const_iterator it;
// it能讀不能寫string物件的元素
謹記:但凡是使用了迭代器的迴圈體,都不要向迭代器所屬的容器中新增元素
迭代器的運算:iter±n表向前後移動n個元素,iter1-iter2表之間的距離(difference_type
),
例:
auto beg = text.
begin()
,end = text.
end();
auto min = text.
begin()
+(end - beg)/2
;while
(mid != end &&
*mid != sought)
陣列下標為定義在中的
size_t
型別
陣列與指標:
int ia=
;auto
ia2(ia)
;//ia2是乙個整型指標,指向ia的第乙個元素
decltype
(ia) ia3 =
;//ia3是陣列
int*beg=
begin
(ia)
;//指向ia的首元素
int*last=
end(ia)
;//指向ia尾元素的下一位置的指標
與舊**的介面:
整型提公升
無符號型別得運算物件
顯示轉換:
異常:存在執行時的反常行為,超出了函式的正常功能範圍,如失去資料庫連線、遇到意外輸入。—設計系統最難的一部分省略符形參
值是怎麼返回的
列表初始化返回值
主函式main的返回值
返回陣列指標的函式:陣列維度必須跟在函式名後,形參列表跟在函式名後且先於陣列維度
type (
*function
(parameter_list)
)[dimension]
int(
*func
(int i))[
10];
使用尾置返回型別
尾置返回型別跟在形參列表後,->
開頭,原來的位置替換位auto,如:
auto
func
(int i)
->
int(*)
[10];
使用decltype,如:
int odd=
;int even=
;decltype
(odd)
*arrptr
(int i)
同一作用域內幾個函式名字相同但行參列表(型別或數量)不同,稱為過載函式
Chapter3 字串 向量和陣列
vector 初始化有多種方法,下面將這些方法詳細羅列 vector v1 定義了乙個空vector,潛在元素是t型別,執行預設初始化 vector v2 v1 v2是v1的拷貝 vector v2 v1 同上 vector v3 n,val v3包含n個重複的元素,每個的值都是val vector...
Chapter3 字串 向量和陣列
1 for declaration expression 2 statement vector和陣列都是物件的集合,而引用不是物件。vector物件可以高效地增長,在定義vector物件的時候設定其大小也就沒什麼必要了,事實上如果這麼做效能可能更差。為了便於專門得到const iterator型別的...
三 字串 向量和陣列
一 標準庫型別string 1 使用等號 初始化乙個變數,執行的是拷貝初始化,編譯器把等號右側的初始值拷貝到新建立的物件中 如何不使用等號,則執行的是直接初始化。2 os is s 從is中讀取字串賦給s,字串以空白分隔,返回is getline is,s 從is中讀取一行賦給s,返回is 3 st...