您的位置:首页 > 其它

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++;

}

记录之
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: