vector初始化方法
一维向量
#include <iostream>
#include <vector>
using namespace std;
void print1d(vector<int> &v)
{
for (vector<int>::iterator it = v.begin(); it < v.end(); ++it)
{
cout << *it << " ";
}
cout << endl;
}
void vector_1d()
{
vector<int> v1(10);
print1d(v1);
vector<int> v2(10, 2);
print1d(v2);
vector<int> v3 {1,2,3,4,5};
print1d(v3);
int arr[] = {1,2,3,4,5};
vector<int> v4(arr, arr+3);
print1d(v4);
vector<int> v5_1(v1);
print1d(v5_1);
vector<int> v5_2(v1.begin()+1, v1.end()-1);
print1d(v5_2);
}
int main(int argc, char const *argv[])
{
vector_1d();
return 0;
}
二维向量
#include <iostream>
#include <vector>
using namespace std;
void print2d(vector<vector<int> > &v)
{
for (vector<vector<int> >::iterator it = v.begin(); it<v.end();++it)
{
for (vector<int>::iterator vit = (*it).begin();vit<(*it).end();++vit)
{
cout<<*vit<<" ";
}
cout<<endl;
}
}
void vector_2d()
{
int row=3,col=4;
vector<vector<int> > v1(row, vector<int>(col));
print2d(v1);
vector<vector<int> > v2(row, vector<int>(col, 1));
print2d(v2);
vector<vector<int> > v3;
v3.resize(row);
for (int k = 0; k < row; ++k)
v3[k].resize(k + 1);
print2d(v3);
vector<vector<int> > v4{{1,2,3,4}, {2,3,4,5}, {3,4,5}};
print2d(v4);
}
int main(int argc, char const *argv[])
{
vector_2d();
return 0;
}
参考
- C++ Vector数组初始化(一维,二维);