1. 程式人生 > >第六章Vector向量容器

第六章Vector向量容器

   作為陣列的一個泛化的vector容器,不僅可以進行陣列一樣的元素隨機訪問,還可以在容器的尾端插入新元素。

vector具有自動的記憶體管理功能,對於元素的插入和刪除,可動態調整所佔用的記憶體空間。

 

建立vector物件

(1) vector(const A&a=A())

建立一個空的vector物件,A是記憶體分配器,此引數可省略,相當於一個vector()的呼叫。例如,下面一行程式碼建立了vector物件v。

(2)vector(size_type n)

建立一個具有n個元素的vector物件,每個vector元素具有它的型別下的預設值。此時,n個vector元素的記憶體空間已被分配。例如,下面一行程式碼,建立了具有10個元素的vector物件v,每個元素的預設值0.0

(3)vector(size_type n,const T& value)

建立一個具有n個元素的vector物件,每個物件具有初始值value。例如,下面一行程式碼

建立了一個具有10個元素的vector物件,每個元素的預設值為9.3

(4)vector(const vector&)

通過拷貝一個vector物件對的各個元素值,建立一個新的vector物件。例如,下面使用v1物件建立v2物件,此時,v2物件的5個元素也具有字元值“k”。

 

(5)vector(const InuptIterator first,const  InuptIterato last,const A& a = A()  )

 InputIterator為輸入迭代器,通過拷貝迭代器區間[first,last)的元素值,建立一個新的vector物件中,記憶體分配器可省略。例如,利用int陣列iArray各元素值,建立了vector物件v。

 

初始化賦值

vector 提供的push_back函式,常用來進行vector容器的初始化。push_back函式在容器的尾端插入新元素value。

#include<vector>
#include<iostream>
using namespace std;
int main(){

	vector<int> v;
	v.push_back(20);
	v.push_back(26);
	v.push_back(39);
	vector<int>::iterator i, iend; //起始結尾迭代器值
	iend = v.end();
	int j;
	for (i = v.begin(), j = 0; i != iend; i++, j++)
		cout << "v[" << j << "]=" << *i << endl;


	

	system("pause");
	return 0;
}

元素插入

不同於在

常用函式原型

(1)bool empty()

(2)size_type size()

當前vector容器的實際元素的個數

(3)size_type max_size()

系統所允許的vector容器的最大元素個數。

(4)size_type capacity()

當前可容納的vector的元素的個數

(5)reference front()

vector容器的首元素(引用),要求vector不為空

(7)void pop_back()

與push_back函式相反,pop_back函式用於刪除末尾的一個容器元素。