STL中list的erase()方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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++; }
转自:http://blog.csdn.net/iam_charlie/article/details/6062472
以上是关于STL中list的erase()方法的主要内容,如果未能解决你的问题,请参考以下文章