vector是將元素放到動態(tài)數(shù)組中加以管理的容器,vector容器可以隨機存取元素,也就是說支持·[]運算符和at方式存取。
所以vector分配的是一塊連續(xù)的內(nèi)存的空間。當沒有連續(xù)的內(nèi)存空間去插入新來的元素時,則重新分配一塊更大的內(nèi)存空間。將原內(nèi)存空間中的數(shù)據(jù)拷貝到新的內(nèi)存空間
vector在尾部添加或者刪除元素非???,在中間操作非常耗時,因為他需要移動元素。
?基本用法
front() ?返回頭部元素的引用,可以當左值
back() 返回尾部元素的引用,可以當左值
push_back() 添加元素,只能尾部添加
pop_back() 刪除元素,只能在尾部刪除
//用法代碼
vector初始化共四個構(gòu)造函數(shù)
1.直接構(gòu)造函數(shù)初始化
vector<int> v1;
2.拷貝構(gòu)造函數(shù)初始化
vector<int> v2=v1;
3.使用部分元素初始化
vector<int> ::iterator iter1=v.begin();
vector<int> ::iterator iter2=v.end();
vector<int> v(iter1,iter2);
4.使用元素書和值初始化
vector<int> v(3,5);//三個元素,初始化為5
vector遍歷方式,可以根據(jù)[]或者迭代器遍歷
[]方式
at()方式
迭代器方式
vector的元素刪除
erase(iterator) 刪除后會返回當前迭代器的下一個位置。
vector的元素添加
int main(int argc, const char * argv[]) {
//初始化vector對象
vector<int> v1(10);
//在指定的位置插入元素10的拷貝
v1.insert(v1.begin() + 3, 10);
//在指定的位置插入3個元素11的拷貝
v1.insert(v1.begin(), 3, 11);
//遍歷
for (vector<int>::iterator it = v1.begin(); it != v1.end(); it++) {
cout << *it << " ";
}
cout << endl;
return 0;
}