問題:
特定の未ソートのベクターから重複を除去する効率的な解決策を見つけるオリジナルを維持したままベクトルを作成する
カスタム アプローチ:
提供された実装では、セットを利用して一意の要素を追跡します。各ベクトル要素を繰り返しチェックし、新しいベクトルに一意の要素を追加し、元のベクトルから重複を削除します。
STL アルゴリズムのアプローチ:
STL アルゴリズムを活用した、より合理化されたソリューションが推奨されます。 。 std::copy_if アルゴリズムを採用し、処理された要素を追跡する述語を定義します。すでに処理された要素の場合は false を返し、それ以外の場合は true を返します。
述語の実装:
ブール演算子() メソッドを使用して NotDuplicate という構造体を作成します。この演算子は、セットの挿入を通じて要素を追跡します。挿入が成功した場合 (一意の要素を示す)、True が返されます。
std::copy_if:
std::copy_if を利用して、元のベクトルを反復処理し、NotDuplicate を適用します。述語。一意の要素は、uniqueNumbers という新しいベクトルにコピーされます。 std::copy_if 内で NotDuplicate インスタンスを参照することにより、副作用が回避されます。このアルゴリズムは、重複を手動で削除したりイテレータを維持したりする必要がなく、よりクリーンで効率的なソリューションを提供します。
以上がSTL を使用して順序を維持しながら、ソートされていないベクトルから重複を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。