我有一个包含大约 30 个不同类型成员的 POD,我希望将数千个 POD 存储在一个容器中,然后按其中一个成员对该容器进行排序。
例如:
struct Person{
int idNumber;
....many other members
}
数以千计的Person
我想要排序的对象idNumber
或我选择排序的任何其他成员。
我今天已经研究了一段时间,似乎最有效或至少最简单的解决方案根本不使用struct
,而是使用tuple
它我可以将索引号传递给自定义比较函子以供使用在std::sort
. (此页面上的示例显示了一种轻松实现此类排序的方法,但是在 a 的单个成员上struct
这样做会使模板化变得不那么容易,因为您必须按名称引用成员,而不是按索引tuple
提供。)
我对这种方法的两部分问题是 1) 一个包含几十个成员的元组是否可以接受?和 2) 是否有一个同样优雅的解决方案可以继续使用struct
而不是tuple
为此?