ホームページ >バックエンド開発 >C++ >繰り返しながら、一般的なリストから要素を安全に削除する方法は?

繰り返しながら、一般的なリストから要素を安全に削除する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-31 01:46:09734ブラウズ

How to Safely Remove Elements from a Generic List While Iterating?

反復プロセス中に、汎用リストの要素は安全に削除されます

多くのプログラミングシナリオでは、リスト内の要素を処理する必要があります。ただし、このプロセス中に特定の要素を削除する必要がある場合、標準的な方法に問題がある場合があります。

サイクルでの

の使用は異常を引き起こし、カウンターを減少させて使用すると、現在のセット位置が破壊されます。

foreachよりエレガントなソリューションは、逆の反復のリストです:.Remove(element) .RemoveAt(i) これにより、削除要素がリスト内の現在の位置に影響を与えないことが保証されます。

または、メソッドは、述語に従って要素をフィルタリングできます:

<code class="language-csharp">for (int i = safePendingList.Count - 1; i >= 0; i--)
{
    // 处理元素

    // 如需移除元素
    // safePendingList.RemoveAt(i);
}</code>

次の例では、

サイクル方法の使用を示しています。

RemoveAll出力:

以上が繰り返しながら、一般的なリストから要素を安全に削除する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。