vector容器介紹及基本API

2021-07-12 07:48:42 字數 2175 閱讀 1374

今天給大家帶來的是一種stl容器,類似陣列的一種c++容器——vector。

進入主題:

什麼是vector?

vector是一種單口的容器,vector所指的內容是一片連續的空間,支援隨機訪問(random access),此外,vector容器的空間是動態增長的。vector功能基本如圖1-1所示

圖1-1

注意:

所謂動態增加大小,並不是在原空間之後續接新空間(因為無法保證原空間之後尚有可配置的空間),而是一塊更大的記憶體空間,然後將原資料拷貝新空間,並釋放原空間。因此,對vector的任何操作,一旦引起空間的重新配置,指向原vector的所有迭代器就都失效了。這是程式設計師容易犯的乙個錯誤,務必小心。

下面介紹的是vector容器常用的api

vector建構函式

vector

v; //

採用模板實現類實現,預設建構函式

vector(v.begin(), v.end());//

將v[begin(), end())區間中的元素拷貝給本身。

vector

(size_type

_count

,const

value_type

&_val)//

建構函式將_count個_val拷貝給本身。

vector(const vector&vec);//

拷貝建構函式。

//例子 使用第二個建構函式 我們可以...

int arr= ;

vector

v1(arr, arr + sizeof(arr)/ sizeof(int));

vector常用賦值操作

assign(beg, end);//

將[beg, end)區間中的資料拷貝賦值給本身。

assign(n, elem);//

將n個elem拷貝賦值給本身。

vector& operator=(const vector &vec);//

過載等號操作符

swap(vec);// 

將vec與本身的元素互換。

swap

額外作用:壓縮空間

vector(v).swap(v);

vector大小操作

size();//

返回容器中元素的個數

empty();//

判斷容器是否為空

resize(int num);//

重新指定容器的長度為num,若容器變長,則以預設值填充新位置。如果容器變短,則末尾超出容器長度的元素被刪除。

resize(int num,elem);//

重新指定容器的長度為num,若容器變長,則以elem值填充新位置。如果容器變短,則末尾超出容器長》度的元素被刪除。

capacity();//

容器的容量

reserve(int len);//

容器預留len個元素長度,預留位置不初始化,元素不可訪問。

vector資料訪問操作

at(int idx); //

返回索引idx所指的資料,如果idx越界,丟擲out_of_range異常。

operator;//

返回索引idx所指的資料,越界時,執行直接報錯

front();//

返回容器中第乙個資料元素

back();//

返回容器中最後乙個資料元素

vector插入和刪除操作

insert(const_iterator pos, int count,ele);//

迭代器指向位置pos插入count個元素ele.

push_back(ele); //

尾部插入元素ele

pop_back();//

刪除最後乙個元素

erase(const_iterator start, const_iterator end);//

刪除迭代器從start到end之間的元素

erase(const_iterator pos);//

刪除迭代器指向的元素

clear();//

刪除容器中所有元素

Vector容器的基本用法

vector作為stl提供的標準容器之一,是經常要使用的,有很重要的地位,並且使用起來也是灰常方便。vector又被稱為向量,vector可以形象的描述為長度可以動態改變的陣列,功能和陣列較為相似。實際上更專業的描述為 vector是乙個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫,vec...

容器 Vector 的基本使用

v.push back value 代表向容器插入這種型別的資料 v.begin 指向容器的第乙個資料 v.end 指向容器的最後乙個資料的後乙個資料 include include include include using namespace std void myout int value i...

c 容器vector的基本操作

在c 中,vector是乙個十分有用的容器,下面對這個容器做一下總結。1 基本操作 1 標頭檔案 include.2 建立vector物件,vectorvec 3 尾部插入數字 vec.push back a 4 使用下標訪問元素,cout vector iterator it for it vec...