c++ 二维向量的赋值问题!

来源:百度知道 编辑:UC知道 时间:2024/06/11 07:51:11
#include <iostream>
#include <vector>
using namespace std;
typedef vector<vector<int> > Mat;
int main()
{
Mat a;
int n,m,i,j;
cout<<"输入此矩阵的行列数:";
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<"输入第i行第j列的元素:";
cin>>m;
a[i].push_back(m);
}
cout<<endl;
}
for(i=0;i<a.size();i++)
for(j=0;j<a[i].size();j++)
{
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
哪一块错了,为什么会出现内存错误?

#include <iostream>
#include <vector>
using namespace std;
typedef vector<vector<int> > Mat;
int main()
{
Mat a;
vector<int> vec;
int n,m,i,j;
cout<<"输入此矩阵的行列数:";
cin>>n;

a.clear();
for(i=0;i<n;i++)
{
vec.clear();
for(j=0;j<n;j++)
{
cout<<"输入第i行第j列的元素:";
cin>>m;
vec.push_back(m);
}
a.push_back(vec);
cout<<endl;
}

for(i=0;i<a.size();i++)
{
for(j=0;j<vec.size();j++)
{
cout<<a[i][j]<<" ";

}
cout<<endl;
}
return 0;
}

a[i].push_back(m);//这一句错了
小弟不才,只是经过调试发现这一句错了而已,我只知道这一句的push_back()用错了,
弱弱的说一句,其实二维向量用二维数组挺好的