vector容器類簡單示例

2021-07-31 15:10:59 字數 2493 閱讀 5668

vector作為stl提供的標準容器之一,是經常要使用的,有很重要的地位,並且使用起來也是灰常方便。vector又被稱為向量,vector可以形象的描述為長度可以動態改變的陣列,功能和陣列較為相似。實際上更專業的描述為:vector是乙個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫,vector之所以被認為是乙個容器,是因為它能夠像容器一樣存放各種型別的物件,簡單地說,vector是乙個能夠存放任意型別的動態陣列,能夠增加和壓縮資料。

那麼vector和陣列的主要區別

陣列:分配的是靜態空間,一般分配了就不可以改變,就像我們熟知的定義了乙個陣列,那麼陣列的長度就不可以改變了,我們也不可以進行越界訪問,但是編譯器不檢查越界,這一點在我們程式設計的時候要尤為注意(很多都可能會煩這樣的錯誤!!)。一般申請的陣列長度不能滿足我們的要求了,我們要重新申請大一點陣列,然後把原陣列中資料複製過來。

vector:分配的是動態空間,即:我們發現在宣告vector容器的時候也可以不指定容器的大小,vector是隨著元素的加入,空間自動擴充套件的。但是,我們必須要負責任的肯定vector分配的空間是連續的,也就是支援陣列中的下標隨機訪問,實際上vector的實現機制是:預留一部分空間,而且預留空間的大小是按一定比率增長的,如果空間不夠用的話,要保證連續,就必須重新new一片空間,然後將原有元素移動到新空間,同時預留新的空間(並且新分配的空間比原來分配的空間),最後將原來的那部分空間釋放掉。這樣預留空間的好處就是不用每次向vector中加元素都重新分配空間。

#include 

#include

using

namespace

std;

int main()

; vector

v1;vector

::iterator iter;

//插入元素

v1.insert(v1.begin(),2,1);//從下標為0開始插入兩個1,結果為 1 1

v1.insert(v1.begin(), a, a + 3);//從下標為0開始插入從a[0]到a[3]前面的元素,即插入a[0],a[1],a[2],結果為2 3 4 1 1

cout

<< "容量為:"

<< v1.capacity() << endl;

cout

<< "長度為:"

<< v1.size() << endl;

v1.insert(v1.begin()+5,2,5);//從下標為5開始插入兩個5,結果為2 3 4 1 1 5 5

v1.push_back(0);//尾插

cout

<< "data: ";

for (iter = v1.begin(); iter != v1.end(); ++iter)

cout

<< *iter << " ";

cout

<< endl <

/2 3 4 1 1 5 5 0

cout

<< "長度為:"

<< v1.size() << endl;

//刪除元素

v1.erase(v1.begin(),v1.begin()+2);//刪去下標為0,1的,也就是刪去2,3.剩下為4 1 1 5 5 0

v1.erase(v1.begin()+1);//刪去下標為1的,也就是刪去1,剩下為4 1 5 5 0

v1.pop_back();//尾刪 結果為4 1 5 5

cout

<< "data: ";

for (iter = v1.begin(); iter != v1.end(); ++iter)

cout

<< *iter << " ";

cout

<< endl << "容量為:"

<< v1.capacity() << endl;

cout

<< "長度為:"

<< v1.size() << endl;

v1.clear();//清空資料

cout

<

<< endl;

cout

<

<< v1.capacity() << endl;

cout

<

<< v1.size()

();//釋放記憶體

cout

<< "v1.~vector()後"

<< endl;

cout

<< "容量為:"

<< v1.capacity() << endl;

cout

<< "長度為:"

<< v1.size() << endl;

if (v1.empty())//判斷vector是否為空

cout

<< "vector為空";

return

0;}

下面為結果

vector容器簡單例子

stl六大元件 容器,演算法迭代器,空間配置器,介面卡,仿函式 vector容器 連續的儲存空間,雙向,隨機,單口容器,只能在一端進行插入刪除 例子 define crt secure no warnings include include using namespace std void prin...

C STL中vector容器類的簡單操作

vector是c 標準模板庫中的部分內容,它是乙個多功能的,能夠操作多種資料結構和演算法的模板類和函式庫。vector之所以被認為是乙個容器,是因為它能夠像容器一樣存放各種型別的物件 簡單地說,vector是乙個能夠存放任意型別的動態陣列,能夠增加和壓縮資料。vector容器類的基本操作有 1 標頭...

使用STL的vector容器類

範例程式 include include include include include using namespace std int main char b size 定義vector物件 vectorvf a,a size vectorvc b,b size sizef vf.size siz...