C 與 STL 動態陣列 vector

2021-08-16 03:35:22 字數 3420 閱讀 3869

摘自:博主柳婼

vector

是乙個模板類

所以使用時要用

vectora

或者vectorb

這樣的方式來宣告乙個

vector

vector

是乙個類似於

int a

的整數陣列,而

vector

是乙個類似於

string a

的字串陣列

clear()

清空resize()

改變大小

push_back()

在尾部新增元素

pop_back()

在尾部刪除元素

empty()

測試是否為空

vector

之間可以直接賦值或者作為函式的返回值

push_back()

和pop_back()

無需改變陣列長度,自動會增加和減小陣列長度

增加長度後增加的元素值為0

測試**:

#include 

#include 

usingnamespacestd;  

intmain()   

vector<int> b;  

b = a;  

cout << "print b: 直接賦值"

<< endl;  

for(inti = 0; i < b.size(); i++)   

cout << endl;  

cout << "a.size() = "

<< a.size() << endl;  

cout << "print1:"

<< endl;  

for(inti = 0; i < a.size(); i++)   

cout << endl;  

a.resize(11);  

cout << "a.size() = after resize(11) :"

<< a.size() << endl;  

cout << "print2 after resize(11):"

<< endl;  

for(inti = 0; i < a.size(); i++)   

cout << endl;  

a.push_back(22);  

cout << "print3 after push_back(22):"

<< endl;  

for(inti = 0; i < a.size(); i++)   

cout << endl;  

a.pop_back();  

cout << "a.size() = after pop_back() :"

<< a.size() << endl;  

cout << "print4 after pop_back():"

<< endl;  

for(inti = 0; i < a.size(); i++)   

cout << endl;  

cout << "a.empty()?:"

<< a.empty() << endl;  

a.clear();  

cout << "a.size() = after a.clear() :"

<< a.size() << endl;  

cout << "print5 after a.clear():"

<< endl;  

for(inti = 0; i < a.size(); i++)   

cout << endl;  

return0;  

}  c.assign(beg,end)

將(beg; end)

區間中的資料賦值給c。

c.assign(n,elem)將n

個elem

的拷貝賦值給c。

c. at(idx)

傳回索引

idx所指的資料,如果

idx越界,丟擲

out_of_range

。c.back()

傳回最後乙個資料,不檢查這個資料是否存在。

c.begin()

傳回迭代器

中的第乙個資料位址。

c.capacity()

返回容器中資料個數。

c.clear()

移除容器中所有資料。

c.empty()

判斷容器是否為空。

c.end() // 

指向迭代器中末端元素的下乙個,指向乙個不存在元素。

c.erase(pos)

// 刪除

pos位置的資料,傳回下乙個資料的位置。

c.erase(beg,end)

刪除[beg,end)

區間的資料,傳回下乙個資料的位置。

c.front()

傳回第乙個資料。

get_allocator

使用建構函式

返回乙個拷貝。

c.insert(pos,elem)

// 在

pos位置插入乙個

elem

拷貝,傳回新資料位置

c.insert(pos,n,elem)

// 在

pos位置插入n個

elem資料,

無返回值

c.insert(pos,beg,end)

// 在

pos位置插入在

[beg,end)

區間的資料。無返回值

c.max_size()

返回容器中最大資料的數量。

c.pop_back()

刪除最後乙個資料。

c.push_back(elem)

在尾部加入乙個資料。

c.rbegin()

傳回乙個逆向佇列的第乙個資料。

c.rend()

傳回乙個逆向佇列的最後乙個資料的下乙個位置。

c.resize(num)

重新指定佇列的長度。

c.reserve()

保留適當的容量。

c.size()

返回容器中實際資料的個數。

c1.swap(c2)

// 將c1和

c2元素互換

STL 動態陣列 vector

動態陣列,使用時需要加標頭檔案vector。它的特點可以實現動態增長的陣列。也就是說我們不必關心該陣列事先定義的容量是多少,它的大小會動態增長。與陣列類似的是,我們可以在末尾進行元素的新增和刪除,也可以進行元素值的隨機訪問和修改。include include include vector 的建立 ...

STL之vector動態陣列(詳解)

vector收錄在stl裡,是一種特殊的資料結構。它的中文名字叫做 動態陣列 或者 不定長陣列 有時也被翻譯成 容器 基本操作 1 構造乙個vector vectorvec。其中t是我們陣列要儲存的資料型別,可以是int float double等。初始的時候vec是空的 2 通過push back...

STL學習筆記 vector容器 動態陣列

簡介 vector是將元素置於乙個動態陣列中進行管理的容器 vector可以隨機訪問元素,支援索引值直接訪問,用或者at 方法 vector下尾部新增或者刪除元素非常快,但在中間或頭部插入或者刪除元素比較耗時 標頭檔案 include vector基本操作 vectorv v.push back 1...