在C++中,我們不能用數組直接初始化另一數組,而只能創建新的數組,然后顯式的把原數組的元素逐個復制給新的數組。
按照C語言中的做法:
1 const size_t arry_size=6; 2 int int_arry[arry_size]={0,1,2,3,4,5}; 3 int int_arry2[arry_size]; 4 for(size_t ix=0;ix<arry_size;++i) 5 int_arry2[ix]=int_arry[i];
而使用數組初始化vector對象,可以直接利用一個vector對象來初始化另一個vector對象:
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 5 int main() { 6 //使用數組初始化vector對象 7 const size_t arr_size = 6; 8 int int_arr[arr_size] = { 0,1,2,3,4,5 }; 9 vector<int> ivec(int_arr, int_arr + arr_size); 10 /*傳遞給ivec的兩個指針標出了vector初值的范圍。第二個指針指向被復制的最后一個元素之后的地址空間。*/ 11 //被標出的元素范圍可以是數組的子集 12 vector<int> ivec1(ivec); 13 14 for (vector<int>::size_type i = 0; i != ivec1.size(); ++i) 15 cout << ivec1[i]; 16 cout << endl; 17 return 0; 18 }
講數組轉換為vector對象后,可以使用vector對象的各種函數操作,如size()獲取元素個數,push_back()在末未添加新的元素等。