c++ - 元组如何自动排序?

标签 c++

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/

相关文章:

c++ - C++ 对象如何处理被分配数组文字?

c++ - 如何定义 vector 结束,这样它就不会无休止地继续下去?

c++ - std::vector<std::string> 的内容消失

c++ - SDL2 : LNK1561: entry point must be defined

c# - 如何在 Unity3D 中使用 C++ dll?

c++ - 如何将浮点值移位到可以精确表示的特定小数位数的最接近的值?

c++ - SFML游戏无法在Windows上编译

c++ - 标题一定是一个文件吗?

没有运算符定义的 C++ 失败

c++ - 将类型转换为整数的元函数,反之亦然