重複の可能性:
範囲ベースの for ループ内でコンテナーから要素を消去する
これと同様にfor( auto item : list )
、新しい構文を使用して反復しながら STL リストから削除できますか?
ここに完全な例があります (これはクラッシュします!)
#include <list>
using namespace std ;
int main()
{
list<int> li;
li.push_back( 4 ) ;
li.push_back( 5 ) ;
li.push_back( 6 ) ;
for( auto num : li )
{
if( num == 5 )
li.remove( num ) ;
else
printf( "%d\n", num ) ;
}
}