#include
#include
using namespace std;
void print(deque<deque> d)
{
for(deque<deque>::iterator it=d.begin();it != d.end();it++)
{
for(deque::iterator vit=(*it).begin();vit != (*it).end();vit++)
{
cout <<*vit<< " ";
}
cout <<endl;
}
}
int main()
{
deque<deque> d;
for(int i=0;i<5;i++)
{
deque a;
d.push_back(a);
}
cout<<d.size();
for(int i=0;i<d.size();i++)
{
for(int j=0;j<10;j++)
{
int score =rand()%40+60;
d[i][j]=score;
}
}
print(d);
//
// for(int i=0;i<d.size();i++)
// {
// for(int j=0;j<10;j++)
// {
// cout<<d[i][j]<<" ";
// }
// cout<<endl;
// }
return 0;
}
```
deque<deque>这么写不对,应该是
deque< deque<int> >
你这里d虽然跟二维数组效果一样,但是d不是二维数组,是容器。容器跟数组不是一回事。你的代码修改如下:
#include <iostream>
#include <deque>
using namespace std;
void print(deque<deque<int> > d)
{
for(deque<deque<int> >::iterator it=d.begin();it != d.end();it++)
{
for(deque<int>::iterator vit=(*it).begin();vit != (*it).end();vit++)
{
cout <<*vit<< " ";
}
cout <<endl;
}
}
int main()
{
deque<deque<int> > d;
for(int i=0;i<5;i++)
{
deque<int> a;
for(int j=0;j<10;j++)
{
int score =rand()%40+60;
a.push_back(score);
}
d.push_back(a);
}
cout<<d.size() << endl;
/*for(int i=0;i<d.size();i++)
{
for(int j=0;j<10;j++)
{
int score =rand()%40+60;
d[i][j]=score;
}
}*/
print(d);
//
// for(int i=0;i<d.size();i++)
// {
// for(int j=0;j<10;j++)
// {
// cout<<d[i][j]<<" ";
// }
// cout<<endl;
// }
return 0;
}