ホームページ > バックエンド開発 > C++ > STL を使用して順序を維持しながら、ソートされていないベクトルから重複を削除するにはどうすればよいですか?

STL を使用して順序を維持しながら、ソートされていないベクトルから重複を削除するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-16 04:32:03
オリジナル
525 人が閲覧しました

How to Remove Duplicates from an Unsorted Vector While Preserving Order Using STL?

STL を使用してオリジナル性を維持しながら未ソートのベクトルから重複を削除する

問題:
特定の未ソートのベクターから重複を除去する効率的な解決策を見つけるオリジナルを維持したままベクトルを作成する

カスタム アプローチ:
提供された実装では、セットを利用して一意の要素を追跡します。各ベクトル要素を繰り返しチェックし、新しいベクトルに一意の要素を追加し、元のベクトルから重複を削除します。

STL アルゴリズムのアプローチ:
STL アルゴリズムを活用した、より合理化されたソリューションが推奨されます。 。 std::copy_if アルゴリズムを採用し、処理された要素を追跡する述語を定義します。すでに処理された要素の場合は false を返し、それ以外の場合は true を返します。

述語の実装:
ブール演算子() メソッドを使用して NotDuplicate という構造体を作成します。この演算子は、セットの挿入を通じて要素を追跡します。挿入が成功した場合 (一意の要素を示す)、True が返されます。

std::copy_if:
std::copy_if を利用して、元のベクトルを反復処理し、NotDuplicate を適用します。述語。一意の要素は、uniqueNumbers という新しいベクトルにコピーされます。 std::copy_if 内で NotDuplicate インスタンスを参照することにより、副作用が回避されます。このアルゴリズムは、重複を手動で削除したりイテレータを維持したりする必要がなく、よりクリーンで効率的なソリューションを提供します。

以上がSTL を使用して順序を維持しながら、ソートされていないベクトルから重複を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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