student a = make_tuple(1, "Adam");
student b = make_tuple(3, "Josh");
vect.push_back(a);
vect.push_back(b);
vect.push_back(make_tuple(2, "Daniel"));
sort(vect.begin(), vect.end());
在排序之前,它们在 vector 中的顺序为 1、3、2。排序后它们的顺序是 1、2、3。我没有定义比较器,排序是内置方法,没有回调函数。它怎么知道如何按元组的整数参数排序?排序是否内置于元组中?
最佳答案
元组有预定义的比较运算符。他们的行为符合您的预期;根据标准 (C++11 §20.4.2.7/5),operator<
元组的返回“字典比较的结果”。
关于c++ - 元组如何自动排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23485298/