熟练掌握,非常重要
一维数组
void printVector(vector<int> v) {
for (int ii = 0; ii < v.size(); ii++) {
if (ii != 0) cout << " ";
cout << v[ii];
}
cout <<endl;
}
void test1() {
// 方法一,逐个字符压入
vector<int> v1;
v1.push_back(1);
v1.push_back(2);
v1.push_back(3);
// 方法二,一次性传入
vector<int> v2;
v2 = { 1,2,3,4 };
// 方法三,填充n个数值
vector<int> v3(5, 0);
// 方法四,fill算法填充
vector<int> v4(6); //vector<int> v(n); v的大小为n vector<int> v[n]; n个vector数组
fill(v4.begin(), v4.end(), 0);
// 方法五,拷贝构造
vector<int> v5(v4);
// 方法六,拷贝一维数组
int arr[5] = { 1,4,3,2,5 };
vector<int> v6(begin(arr), end(arr)); // 注意不是vector<int> v(arr[0], arr[4]);
printVector(v1);
printVector(v2);
printVector(v3);
printVector(v4);
printVector(v5);
printVector(v6);
}
int main() {
test1();
}
二维数组
void printVector2d(vector < vector<int>> v2d) {
for (int ii = 0; ii < v2d.size(); ii++) {
for (int jj = 0; jj < v2d[ii].size(); jj++) {
if (jj != 0) cout << " ";
cout << v2d[ii][jj];
}
cout << endl;
}
cout << endl;
}
void test2() {
// 嵌套vector
// 方法一,逐个压入
vector<int> v1d = { 1,2,3 };
vector<vector<int>> v2d_01;
v2d_01.push_back(v1d);
v2d_01.push_back(v1d);
// 方法二,一次性传入
vector<vector<int>> v2d_02 = { {0,0,0},{1,2,3} };
// 方法三,填充n个vector
vector<vector<int>> v2d_03(3, v1d);
// 方法四 ,fill算法填充
vector<vector<int>> v2d_04(2);
fill(v2d_04.begin(), v2d_04.end(), v1d);
// 方法五,拷贝构造
vector<vector<int>> v2d_05(v2d_03);
// 方法六 ,拷贝二维数组行不通
int arr2d[3][4] = { {5,12,3,4},{1,6,9,8},{7,10,11,2} };
//vector<vector<int>> v2d_06(begin(arr2d[0]), end(arr2d[2]));
// vector数组
vector<int> v2d[2];
v2d[0] = v1d;
v2d[1] = v1d;
printVector2d(v2d_01);
printVector2d(v2d_02);
printVector2d(v2d_03);
printVector2d(v2d_04);
printVector2d(v2d_05);
//printVector2d(v2d_06);
}
int main() {
test2();
}