STL - vector用法總結

(我的STL相關的博客目錄:https://blog.csdn.net/Kprogram/article/details/90408011

(vector-c++官網:http://www.cplusplus.com/reference/vector/)

vector "向量“相當於長度可以自由變換的數組,而且我們不需要關心它是如何增減元素的,直接使用即可。

如果不考慮速度,可以用vector完全替代數組

0 - 頭文件:vector  命名空間:std

#include <vector>
using namespace std;

1 - 構建一個vector:vector<typename> name 

    typename指的是隊列內數據類型,可以是 int, double, 可以是struct, class, 也可以是 vector, string等等。總之是一個數據對象都行。

    name 是你構建的vector的名字,符合變量命名法則就行。

    例:構建一個 int 類型的vector, 名字叫做 V。

vector<int> V;

2 - 成員函數 ( 假設你創建的vector對象名字叫 V )

    (粉紅色的函數爲常用函數!大部分情況下這些函數就夠用了)

容量和尺寸:

    size():返回容量大小(元素數量)

        V.maxsize():返回最大容量

    empy():如果vector爲空,返回True, 反之則返回 False。

    resize(n):重新設置對象的長度,如果n小於size,則保留前n個數據。反之,隨便增加元素到n,或者增加指定元素:V.resize(n, data)

    capacity():返回vector的容量大小,容量不同於size,如果元素的數量超過了容量vector會重新分配內存,以存儲更多的元素,且會造造成一些影響(具體點擊這裏

    reserve(n):重置vector的容量,如果n小於容量,則不會造成影響。

    shrink_to_fit():縮小容量至其等於size。

遍歷vector的一般方法舉列:
for(int i = 0; i < V.size(); i++) {
    int I = V[i];
    ...//對I的操作等

元素:

    V[n]:跟數組一個道理

    back():返回最後一個元素的引用(意味着可以用V.back() = data修改末尾元素值)

    front():返回第一個元素的引用

    at(n):返回第n個元素的引用

    data():返回元素的指針

修改器:

    push_back(type):添加一個元素type到向量的末尾

    pop_back():刪除末尾元素

    insert(type):插入元素type於n處

    erase(V.begin() + n):刪除第n個元素(假設你創建的vector名字爲V)

        erase(a, b):刪除[a, b]內所有元素

    V.swap(V1):交換 V 和 V1 兩個vector的內容

    clear():清除所有元素

    emplace() 和 emplace_back():和push非常相似,但是可以取代push,並做出了優化。 >用法和與push的區別點這裏<

    (vector還有關於迭代的函數,這裏不進行介紹)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章