1.输入连续的两个未知大小vector
vector<int> g;
vector<int> s;
int tem = 0;
while (cin>>tem) {//当输入符合,则一直循环
g.push_back(tem);
if (getchar() == '\n')//遇到回车,跳出循环
break;
}
while (cin>>tem) {
s.push_back(tem);
if (getchar() == '\n')
break;
}
2.vector二维向量的输入问题:
方法一:先对里层的vector容器赋值,然后再把里层的vector作为元素插入到外层的vector中。
vector<vector<int>> vec
vector<int> v;
int m,n,temp;
cin >> m >>n;
//输入
for (int i = 0; i<m; i++) {
v.clear(); //每次要clear
for (int j = 0; j < n; j++){
cin >> temp;
v.push_back(temp);
}
vec.push_back(v);
}
方法二:先申明二维数组,然后就可以像数组一样输入了。
//先申明二维数组
int n=10,m=2;
vector<vector<int> > dp(n);//表示二维数组有 10行
for(int i=0;i<n;i++)
dp[i].resize(m);//表示二维数组有2列
//或者
vector<vector<int> >vec(n,vector<int>(m));//定义二维数组dp[][],n行 m列
//然后就可以像数组一样输入了
for(int i = 0; i < m; ++ i)
for(int j = 0; j < n; ++ j){
cin >> vec[i][j];
}
}