64,691
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<vector <int> > myarray(3, vector <int> (10) ); //建立二维数组,自动初始化为0
for(int i=0; i<3; i++)
for(int j=0; j<10; j++)
myarray[i][j]=i*j+j; //自定义初始化
myarray.resize(4); //这里一个问题,resize之后新增加的那个向量的初值是随机的,不会被默认为零
for(int i=0; i<10; i++)
myarray[3].push_back(3);//这里,编译没错,运行出现内存错误,若改为myarray[3].push_back(3);则没有问题
myarray[3].clear();//clear所谓的清空难道不是把第四个向量的元素值修改为零吗?运行好像一点效果也没有
//并且为什么不能用myarray.clear()清空整个数组,如果这样会出现运行内存错误
for(vector<vector<int> >::iterator iter1=myarray.begin();iter1!=myarray.end();++iter1)
{
cout<<endl;
for(vector<int>::iterator iter2=(*iter1).begin();iter2!=(*iter1).end();++iter2)
cout<<*iter2<<" ";
}
system("pause");
return 0;
}
myarray.resize(4);
for(int i=0; i<10; i++)
myarray[3][i]=3