std::set 挿入メンバー関数の効率的な実装は何でしょうか? データ構造は std::less に基づいて要素をソートするため (演算子 < は要素の型に対して定義する必要があります)、重複を検出することは概念的に簡単です。
実際に内部でどのように機能しますか?レッドバック ツリーのデータ構造 (Josuttis の本で言及されている実装の詳細) を利用していますか?
標準データ構造の実装は異なる場合があります...
一意である必要がある (一般的に言えば) 整数のセットを持たなければならないという問題があります。セットの長さはさまざまなので、動的なデータ構造が必要です (私の狭い知識に基づいて、これはリスト、セットに絞り込みます)。要素は必ずしもソートする必要はありませんが、重複はありません。候補セットには常に多くの重複があるため (セットは小さく、最大 64 個の要素)、insert メンバー関数を使用して std::set に重複を挿入しようとすると、std::list や別のアルゴリズムと比較して多くのオーバーヘッドが発生します。要素をソートすることに頼らないかもしれませんか?
追加: 出力セットは 27 要素の固定サイズです。申し訳ありませんが、これを忘れていました...これは、問題の特殊なケースで機能します。それ以外の場合、長さは任意です (入力セットよりも小さい)。