vector的基本用法

YangweilaiGem發表於2020-12-28

#include <iostream>
#include <vector>//vector的標頭檔案
using namespace std;


int main()
{
    //預設建構函式 元素個數為0, 所佔記憶體空間為0
    //vector<int> num();
    //當我們使用vector 的預設建構函式時,切記,不能直接通過下標去訪問
    //num[0]=1;預設構造下標訪問會報錯

    //vector<int> num(6,666);建立一個容器元素長度為6,所有元素預設指定為數字666
    vector<int> num(6);//不指定所有元素預設為零
    num.push_back(3);//尾部插入1個元素為數字3
    vector<int> num1(8,777);
    cout << "容器的元素長度" << num.size() << endl;
    cout << "容器大小" << num.capacity() << endl;
    num.assign(2, 999);//容器長度不變,原有的元素清空,賦值為2個元素999,
    //num.assign(num1.begin(), num1.end());可以用其他同型別容器進行賦值,使用迭代器進行賦值
    num.assign(num1.begin()+1, num1.end()-1);//用指標指定區間賦值
    //iterator 是迭代器,it是迭代器的一個指標
    //num.begin()是首個元素
    //num.end()是元素尾部最後一個元素的下一個未知位置
    for (vector<int>::iterator it = num.begin(); it < num.end();)
    {
        cout << *it<<endl;
        ++it;
    }
    if (!num.empty())//判斷容器是否為空,!為不的意思
    {
        num.resize(10);//調整容器長度為10個元素,擴充的元素預設為0
        //num.resize(10,666);可以指定擴充的元素預設值都為666
        //如果容器縮小後面的第二個引數無效
    }
    num.pop_back();//去掉尾部的最後一個元素
    num.at(2) = 88;//索引的方式修改第二個元素為88
    num[5] = 66;//下標的方式修改第6個元素為66
    num.insert(num.begin(), 6);//必須使用迭代器防止越界,在首位置插入數字6
    //vector的插入
    //vector.insert(pos, elem);     在pos位置插入一個elem元素的拷貝,返回新資料的位置。
    //vector.insert(pos, n, elem);  在pos位置插入n個elem資料,無返回值。
    //vector.insert(pos, beg, end); 在pos位置插入[beg,end)區間的資料,無返回值 

    //vector的刪除把整個vector 都幹掉
    num.clear();
    //幹掉單個元素
    //num.erase(num.begin());
    //幹掉多個元素
    //num.erase(num.begin(), num.begin() + 3);

    return 0;
}

相關文章