我尝试创建列表向量并向列表中添加元素。以下是我尝试的方式。但是我收到了分段错误错误 ' v [I] .push_back的(a)&#39 ;.我在哪里实施它错了?我该如何克服它?
#include<iostream>
#include<list>
#include<vector>
using namespace std;
int main()
{
vector<list<int> > v;
vector<list<int> >::iterator it;
list<int>::iterator itt;
int nv; //size of the vector
cin>>nv;
for(int i=0;i<nv;i++)
{
int a;
cin>>a;
while(a!=-1)
{
v[i].push_back(a);
cin>>a;
}
}
for(it=v.begin();it!=v.end();it++)
{
for(itt=(*it).begin();itt!=(*it).end();itt++)
{
cout<<*itt<<endl;
}
}
return 0;
}
PS:请原谅我对这个问题的评论。
答案 0 :(得分:2)
你的vector是空的,因为它是默认构造的:
int main()
{
vector<list<int> > v;
vector<list<int> >::iterator it;
list<int>::iterator itt;
int nv; //size of the vector
cin>>nv;
// Fix the size of the vector
v.resize(nv);
for(int i=0;i<nv;i++)
{
int a;
cin>>a;
while(a!=-1)
{
v[i].push_back(a);
cin>>a;
}
}
for(it=v.begin();it!=v.end();it++)
{
for(itt=(*it).begin();itt!=(*it).end();itt++)
{
cout<<*itt<<endl;
}
}
return 0;
}