C での値によるベクトル要素の消去
C でベクトルを操作する場合、特定の要素を削除する必要があるのが一般的です。通常、これは、erase(myVector.begin() 4) を使用して消去する要素の位置を指定することによって行われます。ただし、要素の位置ではなく値に基づいて要素を消去したい場合があります。
これを実現するために、C では std::remove() と std::remove() を組み合わせた Erase-remove イディオムが提供されています。 std::erase() 関数。これを実装する方法の例を次に示します。
#include <algorithm> int main() { vector<int> myVector = {5, 9, 2, 8, 0, 7}; myVector.erase(std::remove(myVector.begin(), myVector.end(), 8), myVector.end()); return 0; }
std::remove() 関数は、ベクトルの開始イテレータと終了イテレータ、および削除する値の 3 つの引数を受け取ります。指定された値を持つすべての要素をベクターの末尾に移動し、元の位置から効果的に削除することでベクターを変更します。
その後、std::erase() 関数はベクターから要素の範囲を消去します。 。この例では、std::remove() によって返された位置からベクターの末尾までのすべての要素を消去します。
erase-remove イディオムを利用すると、値に基づいて要素を簡単に消去できます。コードの効率と保守性が向上します。
以上がC で値によってベクトル要素を消去するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。