【发布时间】:2014-12-21 08:20:29
【问题描述】:
我想使用 stl 做一个列表列表,但是当我尝试查找一个元素并将其从列表中删除时遇到问题,我无法找出错误。
我用随机数做了一个小例子:
int main(int argc, char** argv) {
list<list <int> > l;
srand ( time(NULL) );
list<list <int> >::iterator j;
list<int>::iterator i;
for(int n1=0;n1<10;n1++){
list<int> aux;
int r=rand()%10 +1;
for(int n=0;n<r;n++){
int r2=rand()%100;
aux.push_back(r2);
}
l.push_back(aux);
}
for(j=l.begin();j!=l.end();j++){
list<int> l2=(*j);
for(i=l2.begin();i!=l2.end();i++)
cout << (*i) << " -> ";
cout << endl;
}
int num;
cout << "element to delete: ";
cin >> num;
// ===== 问题应该在这里=====
for(j=l.begin();j!=l.end();j++){
for(i=(*j).begin();i!=(*j).end();i++){
if((*i)==num){
(*j).erase(i);
}
}
}
//====================================
cout << endl;
for(j=l.begin();j!=l.end();j++){
list<int> l2=(*j);
for(i=l2.begin();i!=l2.end();i++)
cout << (*i) << " -> ";
cout << endl;
}
}
非常感谢您提供的任何帮助。
【问题讨论】:
-
您需要告诉我们问题所在。