さまざまなタイプの約 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
ますか?