ホームページ >バックエンド開発 >C++ >STL ベクトルから特定の値を持つ要素を効率的に削除するにはどうすればよいですか?

STL ベクトルから特定の値を持つ要素を効率的に削除するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-30 18:31:12442ブラウズ

How Can I Efficiently Remove Elements with Specific Values from an STL Vector?

STL ベクトルから特定の値を持つ要素を効率的に削除する

STL ベクトルから特定の値を持つ項目を削除することは、一般的な操作として表示される場合があります。ただし、ベクター クラスにはこのタスクのための専用メソッドがありません。ただし、std::remove アルゴリズムとcontainer_type::erase メソッドを使用した効果的な回避策が存在します。

std::remove は、項目を直接削除するのではなく、保持される要素をコンテナーの先頭の方に移動します。ベクター。次に、これらの再配置された要素の直後の要素を指す反復子を返します。このイテレータをcontainer_type::eraseに渡すことで、ベクトルの終端にある無関係な要素を迅速に削除できます。

コードの例を次に示します。

std::vector<int> vec;
// Populate 'vec' with data...

const int target_value = n;
auto erase_result = std::remove(vec.begin(), vec.end(), target_value);

vec.erase(erase_result, vec.end()); // Remove relocated elements

このアプローチでは、効率的に識別し、指定された基準を満たす要素を削除し、ベクトル操作プロセスをより合理化します。

以上がSTL ベクトルから特定の値を持つ要素を効率的に削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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