消去と削除の違いを理解する
std::remove アルゴリズムは、削除されていない要素を先頭に移動するように設計されています。コンテナ、削除された要素が重なっています。これは、要素を削除できないものを含む、任意の前方反復子のペアを操作できる汎用性があるためです。
Erase と Remove の区別
Erase は、std で識別された要素を削除します。 ::取り除く。削除された要素を削除することでコンテナのサイズを削減します。対照的に、remove は要素を削除するのではなく、削除されていない要素を前方にシフトして、削除された要素を上書きします。
std::remove と Vector を使用した例
提供されたテスト コードでは、ベクトル a には 1 と 2 の 2 つの要素が含まれています。 a に std::remove を適用すると、出現する 1 がすべて削除され、2 がベクトルの先頭にシフトされます。ただし、削除された要素によって占有されていたメモリは解放されないため、a のサイズは 2 のままです。
std::remove と Erase の例
When std:: Remove と std::erase を一緒に使用すると、削除された要素が削除され、実際の要素数を反映するようにコンテナのサイズが調整されます。
結論
std::remove を独立して使用して、削除されていない要素をコンテナ内で前方に移動できます。ただし、ほとんどの場合、削除された要素を削除し、コンテナーのサイズを更新するために、std::erase と組み合わせて使用されます。
以上がC の `std::remove` と `std::erase` の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。