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 サイトの他の関連記事を参照してください。