vector<vector<int> > ope;
对于ope多维向量来说,如果没有初始化其长度,是不可以通过ope[0][1]来初始化的,这时系统会报错!
解决方法:
1.就是用push_back()函数向末尾添加元素。
#include<iostream>
#include<vector>
#include<stdio.h>
using namespace std;
int main(){
vector<vector<int> > ope;
vector<int>p;
int x,y;
int counts =0;
//c语言中不设置多维数组的大小,是不可以用[]来访问的,可以向后面添加元素
while(cin>>x>>y){
p.clear();//注意数组的清空
p.push_back(x);
p.push_back(y);
ope.push_back(p);
}
for(int i=0;i<ope.size();i++){
cout<<ope[i][0]<<" ";
cout<<ope[i][1]<<endl;
}
return 0;
}
2.先声明每一维数组的大小,再用operate[]初始化。
#include<iostream>
#include<stdio.h>
using namespace std;
int main(){
vector< vector<int> > ope;
int x,y;
ope.resize(3);
for(int i=0;i<3;i++){
ope[i].resize(3);
}
int counts=0;
while(scanf("%d %d",&x,&y)==2){//c语言中不设置多维数组的大小,是不可以用[]来访问的,可以向后面添加元素
ope[counts][0]=x;
ope[counts++][1]=y;
}
for(int i=0;i<ope.size();i++){
cout<<ope[i][0]<<" ";
cout<<ope[i][1]<<endl;
}
return 0;
}