さまざまなタイプの約 30 のメンバーを持つ POD があり、数千の POD をコンテナーに格納し、そのコンテナーをそれらのメンバーの 1 つで並べ替えたいと考えています。
例えば:
struct Person{
int idNumber;
....many other members
}
Person並べ替えたい何千ものオブジェクト、idNumberまたは並べ替えるために選択した他のメンバー。
私は今日これをしばらく研究してきましたが、これに対する最も効率的な、または少なくとも最も単純な解決策は、まったく使用structしないことであり、使用するtupleためにカスタム比較ファンクターにインデックス番号を渡すことができる方法です。でstd::sort。(このページの例は、このタイプのソートを簡単に実装する 1 つの方法を示していますが、a の 1 つのメンバーに対して行うstructと、テンプレートを作成するのはそれほど簡単ではなくなります。tuple提供します。)
このアプローチに関する私の 2 つの部分からなる質問は、1) 数十のメンバーを持つタプルがかなり大きくなることは許容されますか? structそして2)これの代わりに使い続けるための同様にエレガントな解決策はありtupleますか?