2016/12/16

C++ 像陣列的Vector


  • Vector可代替陣列,也可當加強版陣列
  • 可用陣列形式操作Vector
  • 使用前,加入表頭檔#include <vector>
  • 使用前先設定好長度、型態  vector<int> ivector(10);//表型態為int,長度為10
  • 可用size()看自己長度
  • 可用empty()看是否空


範例1:
#include <iostream> 
#include <vector>
using namespace std; 
int main() { 
    vector<int> ivector(10);
    //宣告型態為int的vector,長度設為10,vector名稱叫ivector
    
    for(int i = 0; i < ivector.size(); i++) {
        ivector[i] = i;
    }
    //ivector.size()可查看大小為多少,此迴圈將0到9依序存入ivector中
    
    for(int i = 0; i < ivector.size(); i++) {
        cout << ivector[i] << " ";
    }
    //將ivector值依序印出來
    
    cout << endl;
    return 0; 
}
也可指定初始值 vector ivector(10, 5); 10為長度 5表示每個元素值預設值為5

以下是他的一些操作方法:

v.empty:檢查是否為空,是回傳1,不是傳0
v.size:回傳大小
v.clear:清空
v.resize:重設大小
v.push_back:在最後面加入一個新元素
v.max_size():Returns the maximum number of elements that the vector can hold.回傳這個元素可容納個最大數字?
v.capacity():回傳這個vector可分配到的最大空間?
#include <iostream> 
#include <vector>
using namespace std; 
int main() { 
    vector<int> vInt;               // 定義vInt是會放int的一組vector
    for (int i=0 ; i <= 10 ; i++)   // 利用迴圈方式加入0到10的數字進入vector
       vInt.push_back(i);           
    
    cout<<vInt.max_size()<<endl;
    cout<<vInt.capacity();
    return 0; 
}
執行結果:
4611686018427387903
16

沒有留言:

張貼留言