菜鳥教程vector詳細介紹
1. 概念:
向量(vector)是乙個封裝了動態大小陣列的順序容器(sequence container)。跟任意其它型別容器一樣,它能夠存放各種型別的物件。可以簡單的認為,向量是乙個能夠存放任意型別的動態陣列。2. 初始化:
vector<
int> vec;
//宣告乙個int型向量
vector<
int>
vec(5)
;//宣告乙個初始大小為5的int向量
vector<
int>
vec(10,
1);//宣告乙個初始大小為10且值都是1的向量
vector<
int>
vec(tmp)
;//宣告並用tmp向量初始化vec向量
vector<
int>
tmp(vec.
begin()
, vec.
begin()
+3);
//用向量vec的第0個到第2個值初始化tmp
int arr[5]
=; vector<
int>
vec(arr, arr +5)
;//將arr陣列的元素用於初始化vec向量
//這個主要是為了和vec.end()指標統一。
vector<
int>
vec(
&arr[1]
,&arr[4]
);//將arr[1]~arr[4]範圍內的元素作為vec的初始值
3. 常用函式:
(1)、容量:
返回值函式
說明int
vec.size()
向量大小
intvec.max_size()
向量最大容量
intvec.resize()
更改向量大小
intvec.resize()
更改向量大小
bool
vec.resize()
向量判空
vec.shrink_to_fit()
減少向量大小到滿足元素所佔儲存空間的大小
(2)、增刪改:
返回值函式
說明vec.assign()
多個元素賦值
vec.push_back()
末尾新增元素
vec.pop_back()
末尾刪除元素
vec.insert()
任意位置插入元素
vec.erase()
任意位置刪除元素
vec.swap()
交換兩個向量的元素
vec.clear()
清空向量元素
(3).迭代器:
返回值函式
說明vec.begin()
開始指標
vec.end()
末尾指標(指向最後乙個元素的下乙個位置)
vec.cbegin()
指向常量的開始指標(意思就是不能通過這個指標來修改所指的內容,但還是可以通過其他方式修改的,而且指標也是可以移動的。)
vec.cend()
指向常量的末尾指標
(4).元素的訪問:
返回值函式
說明vec[1]
下標訪問,並不會檢查是否越界
vec.at(1)
at方法訪問,以上兩者的區別就是at會檢查是否越界,是則丟擲out of range異常
vec.front()
訪問第乙個元素
vec.back()
訪問最後乙個元素
int* p = vec.data()
返回乙個指標,/可行的原因在於vector在記憶體中就是乙個連續儲存的陣列,所以可以返回乙個指標指向這個陣列。這是是c++11的特性。
4.容易出錯點:
vector常用函式的例子
cpp view plain copy print?erase功能 移除vector中部分的元素 void test vector erase std vector vect t,t 7 std cout vect std copy vect.begin vect.end std ostream i...
vector的常用建構函式
vector常用建構函式 建構函式 作用 vector 建立乙個沒有任何元素的空向量 vector vector right 建立乙個向量,並使用向量 right初始化該向量 vector size type count 建立乙個大小為count的向量vect vector size type co...
容器vector的常用介面函式
vectorv1 vector iterator iter v1.push back 10.4 v1.push back 20.2 v1.push back 30.7 for iter v1.begin iter v1.end iter cout iter 輸出10.4 20.2 30.7 v1.p...