如果一个vector,里面放的都是Point3D类型的东西。我想根据这些点的X坐标,把这些点排序,应该怎么办?
用sort的第三个参数!详细不讲了,注意以下几点:
1、sort函数可以三个参数也可以两个参数,必须的头文件#include < algorithm>和using namespace std;
2、它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n)
3、Sort函数有三个参数:(第三个参数可不写)
(1)第一个是要排序的数组的起始地址。
(2)第二个是结束的地址(最后一位要排序的地址)
(3)第三个参数是排序的方法,可以是「降序」也可是「升序」,非常灵活,可以按照自己的规则去定义。
还可以不写第三个参数,此时默认的排序方法是「升序」排序。
4、甚至可以按照绝对值排序,千万注意,这个compare函数,要作为全局函数。也就是定义于.cpp文件的最上面。
#include <cmath>
bool compare(int a, int b)
{
return abs(a) > abs(b);
}