在 C++ 中,std::sort 函数默认使用小于(<)运算符来比较元素。对于 std::vector<std::vector<int>> 类型的容器,std::sort 会逐个比较容器中的元素,首先比较第一个元素(即区间的左端点),如果相等,则比较第二个元素(即区间的右端点),依此类推。
这是因为 std::sort 需要一个严格的弱序来对元素进行排序,而 < 运算符为 std::vector<int> 类型的向量提供了这样的弱序。当两个向量的左端点相同时,std::sort 会查看下一个元素(右端点)以确定顺序,这样可以确保具有相同左端点的区间会根据右端点被排序,从而保持了整体的排序稳定性。
std::sort 函数没有指定比较函数,因此它默认使用小于运算符来比较 intervals 向量中的每个 std::vector<int> 对象。这意味着,排序首先是基于区间的左端点进行的,如果左端点相同,则会根据右端点进行次级排序。
在 C++ 标准模板库(STL)中,.front()
、.back()
、.begin()
和 .end()
是容器(如 std::vector
、std::list
、std::deque
等)的成员函数,它们用于访问容器中的元素或迭代器。下面是这些函数的具体区别和用途:
-
.front():