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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-21 05:57:09960ブラウズ

How to Remove Elements with a Specific Value from an STL Vector?

stl ベクトルから特定の値を持つ要素を消去する

STL ベクトルは C でよく使われるコンテナですが、その API には要素ベースの要素を削除するメソッドがありません。彼らの価値観について。これにより、次のような疑問が生じます:

値に基づいて stl ベクトルから項目を削除するにはどうすればよいですか?

ベクトル クラスには専用のメソッドがないにもかかわらず、標準ライブラリ関数を使用した解決策があります。

解決策:

std::remove 関数を使用します。この関数は、コンテナから要素を直接削除するのではなく、要素を再配置します。 。削除すべきではない要素をコンテナの先頭に移動し、その後の次の要素を指すイテレータを返します。

削除プロセスを完了するには、このイテレータをcontainer_type::eraseに渡します。これにより、実際に削除されます。追加の要素はコンテナの最後に配置されました。以下に例を示します。

std::vector<int> vec;
// Populate the vector...
int int_to_remove = n;
vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());

このコードは、まず std::remove を使用して、削除しない要素を特定し、ベクトルの先頭に移動します。次に、vec.erase が呼び出され、これらの余分な要素がコンテナから完全に削除されます。

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

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