C++向量 vector動態數組


需要包含頭文件, #include  <vector>   

using namespace std;

vector 容器與數組相比其優點在於它能夠根據需要隨時自動調整自身的大小以便容下所要放入的元素

 

    vector<int> arr;  //創建一個可以容納整數值的動態數組
    vector<int> a1(10);    //聲明一個初始大小為10的向量
    vector<int> a(10, 1);   //聲明一個初始大小為10且初始值都為1的向量
    vector<int> b(a);       //聲明並用向量a初始化向量b
    vector<int> b2=a;       //聲明並用向量a初始化向量b2
    vector<int> b1(a.begin(), a.begin() + 3);    //將a向量中從第0個到第2個(共3個)作為向量b1的初始值
    vector<int> b3(a.begin(), a.end());    //將a向量中從第0個到最后一個作為向量b3的初始值
    int n[] = { 1, 2, 3, 4, 5 };
    vector<int> a2(n, n + 5);   //將數組n的前5個元素作為向量a2的初值
    vector<int> a3(&n[1], &n[4]); //將n[1] - n[4]范圍內的元素作為向量a3的初值;顧頭不顧尾
    
    int x = a2[0];//返回指定序號的元素值
    x = a2.at(0);//返回指定序號的元素值
    x=a2.size();  //返回數組元素的總個數;0表示數組為空
    x= a2.front();    //返回數組的第一個元素的值
    x= a2.back();    //返回數組的最后一個元素的值
    a.clear();      //清空數組,即把里面的所有元素都刪除
    vector<int>::iterator    iter;    //定義一個迭代器變量;可以理解成指針
    iter=a2.begin();      //返回數組第一個數的下標;返回值類型:迭代器
    a2.end();        //返回數組最后一個數的下標;返回值類型:迭代器
    bool bl= a2.empty();    //判斷數組是否為空,如果為空則返回true,非空(有元素)則返回false
    //a2.swap(b);    //兩個動態數組的元素互換
    //swap(a2, b);  //兩個動態數組的元素互換
    a2.push_back(30);  //在尾部插入一個元素
    a2.insert(a2.begin() + 1, 888);  //在下標1的位置插入元素
    a2.insert(a2.begin() + 2, 3, 999); ////在下標2的位置插入3個元素
    a2.insert(a2.end() , 66);  //在尾部插入一個元素
    a2.insert(a2.end(),2, 55);  //在尾部插入n個元素
    int nn[] = { 15,25,35,45,55,65,75 };
    a2.insert(a2.end(), nn+1, nn+5);  //插入普通數組中的元素
    //參數1  插入位置
    //參數2 普通數組的第1個元素開始
    //參數3 普通數組的第5個元素結束,顧頭不顧尾
    a2.pop_back();    //刪除動態數組的最后一個元素
    int k=0,l=1,r=1;
    a2.erase(a2.begin() + k); //刪除動態數組的下標為 k 的元素,返回下一個位置的迭代器
    a2.erase(a2.begin() + l, a2.end() - r); //刪除動態數組;從小標l開始,尾部留下r個

    //遍歷方法一,使用索引下標來遍歷
    for (int i=0;i<a2.size();i++)
    {
        x = a2[i];
    }

    //遍歷方法二,使用迭代器來遍歷
    for (iter=a2.begin();iter!=a2.end();++iter)
    {
        x = *iter;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM