私はかなり単純で明白なイテレータソリューションを持っていますが、SOをタップして、誰かがここで答えに現れる時折の素晴らしいレシピの1つを思い付くかどうかを確認すると思いました:)
状況は次のとおりです。
- 現在 a に格納されている既知の使用可能なサイズの int の複数のベクトルは、
vector<vector<int>>
実行時にのみ認識される API 要求と vect の数が混在しているため、これを回避できません。 - これらはいくつあってもかまいませんが、現実的に言えば、常に数個から数十個程度です (ベクター)。
- 順序は重要ではないので、並べ替えと順序付けのトリックと最適化は公正なゲームです (この段階では必要性を見つけたわけではありませんが、以下のボーナスの質問を考えると、それらが発生する可能性があります)。
- その時点でのベクトルは使い捨てなので、ムーブ トリックも公正なゲームです。
- サイズは通常小さいですが、まれではあるが違法ではないエッジケースでは、これらの一部またはすべてで数百万の int を超える可能性があります。
- メモリはそれほど問題ではありません。通常、常に数 GB の連続したメモリが利用可能であり、これは重要なシステムではありません。
- パフォーマンスは重要ではありません。これはフライト前のチェックですが、まだユーザーが直面しているため、アプリがハングしているようには見えません。エッジケースの種類のシナリオでは、ほんの数秒です。
私は現在、厳密なバイナリ要件を持つ 2 つの API の間でバインドされているため、これは GCC 4.1.x に制限されているため、利用可能な C++0x、Boost 1.44 が絶対的かつ狂ったように不足しています。
現時点では、これらの vect にはすべて一意のインデックスが含まれていますが、将来的には、重複を削除した単一のフィルター処理された配列を生成することも必要になる可能性があります (将来の使用には、インデックスが重複するフィードが含まれる可能性があります)。
C++11 ソリューションまたは関連するものは引き続き歓迎します。私は宿題をやってくれる人を探しているわけではありません。私は不格好ですが、とにかくうまくいく作品を持っています。私は啓蒙と料理本のインスピレーションを何よりも求めています。
前もって感謝します