今天給大家帶來的是一種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...