vector向量容器

2021-07-04 12:35:05 字數 2725 閱讀 2119

vector容器是陣列的乙個泛化推廣,不僅可以像陣列那樣進行元素的隨機訪問,還可以在容器的尾端插入新元素,實現了random access container和back insertion sequence概念。vector具有自動的記憶體管理功能,對於元素的插入和刪除,能夠動態調整占用的記憶體空間。

有多種方式

(1) vector(consta&a=a())

建立乙個空的vector物件,a是記憶體分配器,此引數可以省略,相當於乙個vector()的呼叫,如:

vector

v;

(2) vector(size_type n)

建立乙個具有n個元素的vector物件,每個vector元素具有對應型別下的預設值,且n個vector元素的記憶體空間已被分配,如:

vector

v(10);//每個元素的預設值為0.0

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

建立乙個具有n個元素的vector物件,每個元素具有初始值valuevector v(10,9.9); vector(const vector&)

通過拷貝乙個vector物件的各個元素值,建立乙個新的vector物件。如:

vector

v1(10,』c』);

vector

v2(v1)

(5) vector(const inputiterator first, const inputiterator last,const a&a=a())

inputiterator為輸入迭代器,通過拷貝迭代區間[first,last),如:

int iarray=; 

vector

v(iarray,iarray+5);

利用vector提供的push_back函式進行vector容器的初始化。如:

vector

v;v.push_back(10);

vector的元素可以通過陣列或者迭代器的方式進行遍歷訪問。

利用陣列方式訪問vector元素:

#include 

#include

using

namespace

std;

int main()

#include

#include

using

namespace

std;

int main()

push_back()在vector容器的尾部新增元素,insert函式可以在任意位置插入元素。

#include

#include

using

namespace

std;

int main()

erase函式用來刪除迭代器pos所指的元素或者迭代器區間[first,last)的所有元素,原型如下:

iterator erase(iterator pos);

iterator erase(iterator first,iterator last);

例子:

#include

#include

using

namespace

std;

class myanimal

~myanimal(){}

};int main()

利用vector的反向迭代器reverse_itrator以及相應的rbegin和rend函式可以反向遍歷vector容器的元素。

#include

#include

using

namespace

std;

int main()

利用swap演算法,實現兩個vector容器元素的交換,其原型如下:

void swap(vector &)
例:

判斷是否為空

size_type size()

實際元素個數

size_type max_size()

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

size_type capacity()

當前可以容納的vector元素的個數,reserve函式可以調整資料空間大小

reference front()

容器首元素的引用

reference back()

容器的末尾元素的引用

void pop_back()

與push_back相反,pop_back用於刪除末尾的乙個元素

Vector向量容器

vector向量容器優點 1 vector向量容器不但能像陣列一樣對元素進行隨機訪問,還能在尾部插入元素,是一種簡單 高效的容器,完全可以取代陣列。2 vector向量容器具有記憶體自動管理的功能,對於元素的插入和刪除,可動態調整所佔的記憶體空間。3 對於vector容器的容量定義,可以事先定義乙個...

vector向量容器

vector向量容器 include include vector向量容器標頭檔案 include c語言標頭檔案 include 使用sort演算法 using namespace std bool comp int a,int b 自定義函式從大到小排序 int main cin x v.ins...

Vector(向量容器)

vector是乙個線性順序結構。相當於陣列,但其大小可以不預定指定,並且自動擴充套件。它可以像陣列一樣被操作,由於它的特性我們完全可以將vector看作動態陣列。在使用它時,需要包含標頭檔案include。在建立乙個vector後,它會自動在記憶體中分配一塊連續的記憶體空間進行資料儲存,初始的空間大...