ホームページ > バックエンド開発 > C++ > 位置ではなく値に基づいて C ベクトルから要素を削除するにはどうすればよいですか?

位置ではなく値に基づいて C ベクトルから要素を削除するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-11 01:40:03
オリジナル
940 人が閲覧しました

How Can I Remove Elements from a C   Vector Based on Their Value, Not Position?

位置ではなく値によるベクトル要素の削除

C では、ベクトルを扱う場合、ベクトル内の位置を使用して要素を削除するのが一般的です。たとえば、myVector.erase(myVector.begin() 4) は 4 番目の要素を削除します。

ただし、位置ではなく値に基づいて要素を削除する方が便利な場合があります。これを実現するには、std::remove() アルゴリズムの機能を活用できます。

std::remove() アルゴリズム

std::remove() アルゴリズムは強力です。一連のイテレータから特定の要素を削除するために使用できるツール。その構文は次のとおりです。

template <typename ForwardIterator, typename T>
ForwardIterator remove (ForwardIterator first, ForwardIterator last, const T& value);
ログイン後にコピー

  • first と last は、値を検索する要素の範囲を表す反復子です。
  • value は、範囲から削除する値。

使用例

ベクトルから値「8」を持つすべての要素を削除するには、次のコードを使用できます。

#include <algorithm>
...
vec.erase(std::remove(vec.begin(), vec.end(), 8), vec.end());
ログイン後にコピー

std::remove() と Erase() のこの組み合わせは、一般に erase-remove イディオム と呼ばれます。これは、ベクトルから値によって要素を削除する効率的で便利な方法です。

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

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