STL中list,遍历删除元素注意事项
2013-07-09 14:53
459 查看
void DeleteListElem() { std::list<int> intlist; for(int i=0;i<10;i++) { intlist.push_back(i); } std::list<int>::iterator ite1; std::list<int>::iterator ite2; for(ite1 = intlist.begin();ite1 != intlist.end(); ) { if(4 == *ite1)//要删除4这个元素 { ite2 = ite1;//需要先保留要删除元素的指针; ite1++; //然后原指针++,这样做的目的是防止链表断链 intlist.erase(ite2);//删除 printf("删除成功\r\n"); } else { ite1++; } } //采用下面过程将会出现 list iterator not incrementable 错误 /* for(ite1 = intlist.begin();ite1 != intlist.end();ite1++) { if(4 == *ite1)//要删除4这个元素 { //删除前 itel : [ptr] = 0x002fc168 {4} intlist.erase(ite1); //删除后 item :[ptr] = 0x002fc168 {-17891602},可见指针已经指向不确定的元素 //这里执行完之后,ite1指针会悬空,当执行到for语句中item++操作时会报错 } } */ }
相关文章推荐
- 对List元素迭代删除的注意事项以及三个方法
- STL中用erase()方法遍历删除元素注意的问题
- Java中List遍历中删除元素需要注意
- Stl 删除元素注意事项
- 遍历删除map中的元素之注意事项
- Stl 删除元素注意事项
- Stl 删除元素注意事项
- STL::list 遍历元素方法
- 遍历List删除元素问题
- 从STL中的list删除元素
- 正确遍历删除List中的元素
- STL中用erase()方法遍历删除元素
- STL删除vector或list的方法及注意的问题
- 遍历删除List中的元素
- 遍历std::list过程中删除元素后继续遍历过程
- STL中用ERASE()方法遍历删除元素
- stl 中 容器 set 类插入,删除,遍历,其中存储的元素为基础类型 int (1)
- 遍历List删除重复元素的方案探究
- python list删除元素是要注意的坑点
- STL中用ERASE()方法遍历删除元素