C++ vector型別
Vector是C++好用的箱子,箱子裡有一格一格的隔板,每個空間可以放一樣東西,不管有多長,長多怪,都放得下。

#include <iostream>
#include <vector>
using namespace std;
int main
{
     vector<int> yoyo;
}

而要用vector就要在程式上面先打好 #include<vector> ,這樣才能用喔!!!!!!(yoyo是我自己取的陣列名稱喔!!)
其用法分成三等份,因用法有很多,所以我只介紹常用的功能~~
  • 存取元素的用法 :
  •  1.yoyo.at(i)----->存取索引值為 i 的元素
  • 2.yoyo.front()--->回傳yoyo第一個元素
  • 3.yoyo.back() --->回傳yoyo最尾元素
  • 新增或移除元素的用法:
  •  4.yoyo.push_back()-->新增元素至yoyo的尾端
  •  5.yoyo.pop_back()--->刪除yoyo最尾端
  •  6.yoyo.insert()----->插入一個或多個元素至yoyo內的任意位置
  •  7.yoyo.erase()------>刪除yoyo中一個或多個元素
  •  8.yoyo.clear()------> 清空所有元素
  • 取得長度/起終的用法
  •  9.yoyo.size()------->取得yoyo目前持有的元素個數
  •  10.yoyo.begin()----->它指向yoyo第一個元素
  •  11.yoyo.end()------->它指向yoyo最尾端元素的下一個位置(注意:它不是最末元素)
  •  12.yoyo.empty()-----> 如果yoyo內部為空,則傳回 true 值
如果你只想找我這篇其中一個功能,可用 Ctrl+f 找找看~~(例如我要找push_back用法,你就打4.yoyo.push_back() )
 
那就又來介紹一下~他們得功能吧!!
 
1.yoyo.at(i)
#include <iostream>
#include <vector>
using namespace std;
int main()
{
    vector<int> yoyo;
    yoyo.push_back(3);                      把yoyo看成[3、7、4、12、9]的一維陣列
    yoyo.push_back(7);
    yoyo.push_back(4);
    yoyo.push_back(12);
    yoyo.push_back(9);
    cout << "Vector:";
    for(int i=4;i>=0;i--)                   yoyo.at(i)就是尋找i位置的元素
    {                                                                     [4] [3] [2] [1] [0]
        cout << yoyo.at(i)<<" ";            執行結果:    ↓  ↓   ↓   ↓   ↓
    }                                                          Vector: 9  12 4   7  3
    cout << endl;
}
2.yoyo.front() 3.yoyo.back()
int main()
{
    vector<int> yoyo;
    yoyo.push_back(10);
    yoyo.push_back(4);
    cout << "yoyo.front is now ";                
    yoyo.front() -= yoyo.back();             //10-4=6,也就是頭減尾
    cout << yoyo.front();                    執行結果:yoyo.front is now 6
    cout << endl;
}

4.yoyo.push_back() 5.yoyo.pop_back()
int main()
{
    vector<int> yoyo;
    yoyo.push_back('a');
    yoyo.push_back(4);
    yoyo.push_back(5);
    yoyo.push_back(6);   
                     
    cout << "Vector:";
    for(unsigned int i=0;i<4;i++) ------>unsigned:一個整數不可能是負數時,竟可能用他去避免,這麼做
    {                                                                    最主要的好處之一是可以在宣告當中表明意圖,另一
        cout << yoyo[i]<<" ";                                 方面既然 unsigned 不可能為負,所以檢查有效範
    }                                                                    圍會比較簡單
    cout << endl;                        執行結果: 
    return 0;                                    Vector:97 4 5 6
}                                                      
假如你使用yoyo.pop_back(),他可以刪掉最尾巴的元素,像上面那程式碼,把它放在第8行,結果就變97 4 5。
6.yoyo.insert() 10.yoyo.begin() 11.yoyo.end()
int main()
{
    vector<int> yoyo;
    yoyo.push_back(3);
    yoyo.push_back(7);
    yoyo.push_back(4);
    yoyo.push_back(12);
    yoyo.push_back(9);
    cout << "Vector:";
    for(unsigned int i=0;i<yoyo.size();i++)
    {
        cout << yoyo[i]<<" ";
    }
    cout << endl;

    yoyo.insert(yoyo.begin(),5);------------->yoyo.insert(哪個位置,放甚麼東西),yoyo.begin()是把5放在最前面;反之用yoyo.end(),則放在最後面
cout << "New Vector:";
    for(unsigned int i=0;i<yoyo.size();i++)
    {
        cout << yoyo[i]<<" ";                        執行結果:
    }                                                           Vector:3 7 4 12 9
    cout << endl;                                        New Vector:5 3 7 4 12 9
}                                                                                                      
                             從[0]開始位移3格↴                           [0] [1] [2] [3]
如果你改成yoyo.insert(yoyo.begin()+3,5),結果就會變    ↓   ↓   ↓   ↓

                                                                    New Vector:3   7  4   5 12  9
7.yoyo.erase()
int main()
{
    vector<int> yoyo;
    yoyo.push_back(3);
    yoyo.push_back(7);
    yoyo.push_back(4);
    yoyo.push_back(12);
    yoyo.push_back(9);
    cout << "Vector:";
    for(unsigned int i=0;i<yoyo.size();i++)
    {
        cout << yoyo[i]<<" ";
    }
    cout << endl;

    yoyo.erase(yoyo.begin()+3);                         把位置[3]的元素刪掉

    cout << "New Vector:";
    for(unsigned int i=0;i<yoyo.size();i++)
    {
        cout << yoyo[i]<<" ";                           執行結果:
    }                                                                   Vector:3 7 4 12 9
    cout << endl;                                               New Vector:3 7 4 9
}
8.yoyo.clear()
int main()
{
    vector<int> yoyo;
    yoyo.push_back(3);
    yoyo.push_back(7);
    yoyo.push_back(4);
    yoyo.push_back(12);
    yoyo.push_back(9);
    cout << "Vector:";
    for(unsigned int i=0;i<yoyo.size();i++)
    {
        cout << yoyo[i]<<" ";
    }
    cout << endl;

    yoyo.insert(yoyo.begin()+3,5);

    cout << "New Vector:";
    
    yoyo.clear();                                    顧名思義,都清掉了
    
    for(unsigned int i=0;i<yoyo.size();i++)
    {
        cout << yoyo[i]<<" ";
    }                                                執行結果:
    cout << endl;                                        Vector:3 7 4 12 9
}                                                                New Vector:
9.yoyo.size()
int main()
{
    int c = 0;
    vector<int> yoyo;
    yoyo.push_back('a');
    yoyo.push_back(4);
    yoyo.push_back(5);
    yoyo.push_back(6);
    cout << "Vector:";
    for(unsigned int i=0;i<yoyo.size();i++)
    {
        c++;
    }
    cout << c << endl;                    執行結果: Vector:4
}                                也就是說yoyo.size()是取得yoyo目前持有的元素個數
12.yoyo.empty()
int main()
{
    vector<int> yoyo;
    yoyo.push_back(3);
    yoyo.push_back(7);
    yoyo.push_back(4);
    yoyo.push_back(12);
    yoyo.push_back(9);
    cout << "Vector:";
    for(unsigned int i=0;i<yoyo.size();i++)
    {
        cout << yoyo[i]<<" ";                   這裡的空白不包含在陣列中
    }
    cout << endl;

    if(yoyo.empty())
    {
        cout<<"is empty";
    }
    else                                        執行結果:
        cout << "is not empty";                        Vector:3 7 4 12 9
}                                                                   is not empty

大致上的介紹到這邊,謝謝觀賞~~~~
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 佑佑 的頭像
    佑佑

    佑佑的語言

    佑佑 發表在 痞客邦 留言(0) 人氣()