STL中list的erase()方法的使用
2014-11-05 13:56
344 查看
STL中list的erase()方法的使用
2009-11-27 01:38 2250人阅读 评论(2) 收藏 举报listiterator
最近刚刚接触stl的list 学习的时候遇到了很多的困难 现在记录一下 主要是erase方法的使用
erase()方法是删除iterator指定的节点 但是要注意的是在执行完此函数的时候iterator也被销毁了 这样的话关于iterator的操作就会报错 以下是关于erase()方法的正确使用
正确使用方法1 std::list< int> List;
std::list< int>::iterator itList;
for( itList = List.begin(); itList != List.end(); )
{
if( WillDelete( *itList) )
{
itList = List.erase( itList);
}
else
itList++;
}
正确使用方法2 std::list< int> List;
std::list< int>::iterator itList;
for( itList = List.begin(); itList != List.end(); )
{
if( WillDelete( *itList) )
{
List.erase( itList++);
}
else
itList++;
}
错误使用方法1
std::list< int> List;
std::list< int>::iterator itList;
for( itList = List.begin(); itList != List.end(); itList++)
{
if( WillDelete( *itList) )
{
List.erase( itList);
}
}
错误使用方法2 std::list< int> List;
std::list< int>::iterator itList;
for( itList = List.begin(); itList != List.end(); )
{
if( WillDelete( *itList) )
{
itList = List.erase( ++itList);
}
else
itList++;
}
记录之
相关文章推荐
- C++ 标准模板库STL 双向链表 list 使用方法与应用介绍(一)
- STL中list的erase()方法
- C++ 标准模板库STL 双向链表 list 使用方法与应用介绍(一)
- C++ STL容器的使用方法(vector、queue、list、set、map)
- 【经验】STL的list vector在iterator迭代器的循环中 使用erase 造成的BUG
- stl.list正确erase方法
- C++/STL_中vector基本操作测试代码,vector.erase()使用方法
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- STL中正确使用ERASE()方法遍历删除元素
- STL中List容器类的使用方法
- C++ STL入门教程(2) list双向链表使用方法(附程序代码)
- STL 中list的sort()方法使用总结
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- 3.1.3 STL中list、map、vector的使用方法
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- STL中List的使用方法详解
- STL之list详细使用方法
- 使用STL之list实现链表逆置
- 使用CuteFTP登陆FTP(serv-U)服务器后无法LIST目录和文件的解决方法