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

Patricia Arquette
リリース: 2024-11-22 12:44:15
オリジナル
277 人が閲覧しました

How Do I Efficiently Remove Elements by Value from an STL Vector?

値による STL ベクトルからの要素の削除

STL ベクトルを扱う場合、値による要素の削除は基本的なことのように見えるかもしれません。操作は可能ですが、ベクトル クラス自体には単純なメソッドがないようです。

std::remove 関数は、この一般的なタスクの解決策を提供します。ただし、std::remove はコンテナーから要素を直接削除しないことに注意することが重要です。代わりに、指定された条件を満たす要素をコンテナの先頭に再配置します。削除プロセスを完了するには、この変更されたコンテナをcontainer_type::eraseに渡して、最後にある冗長な要素を削除する必要があります。

次の例を考えてみましょう。

std::vector<int> vec;
// .. populate vec ..
int int_to_remove = n;
vec.erase(std::remove(vec.begin(), vec.end(), int_to_remove), vec.end());
ログイン後にコピー

この例ではたとえば、 std::remove は、 int_to_remove に等しくないすべての要素をベクトルの先頭に再配置し、その後の最初の要素を指す反復子を返します。これらの要素。この反復子は std::erase() の引数として使用され、ベクトルの末尾にある残りの要素を効果的に削除します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート