C では、ベクトルを扱う場合、ベクトル内の位置を使用して要素を削除するのが一般的です。たとえば、myVector.erase(myVector.begin() 4) は 4 番目の要素を削除します。
ただし、位置ではなく値に基づいて要素を削除する方が便利な場合があります。これを実現するには、std::remove() アルゴリズムの機能を活用できます。
std::remove() アルゴリズムは強力です。一連のイテレータから特定の要素を削除するために使用できるツール。その構文は次のとおりです。
template <typename ForwardIterator, typename T> ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& value);
ベクトルから値「8」を持つすべての要素を削除するには、次のコードを使用できます。
#include <algorithm> ... vec.erase(std::remove(vec.begin(), vec.end(), 8), vec.end());
std::remove() と Erase() のこの組み合わせは、一般に erase-remove イディオム と呼ばれます。これは、ベクトルから値によって要素を削除する効率的で便利な方法です。
以上が位置ではなく値に基づいて C ベクトルから要素を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。