有时我们需要对某个数据进行排序,例如基于id升序或降序排列坐标点。使用sort排序vector中的对象。
结构体定义如下:
struct Point2f
{
double x;
double y;
int id;
}
static bool cmp(const Point2f &A, const Point2f &B){
return A.id > B.id;//降序
}
std::vector<Point2f> Result;
//Result中插入需要的数据
.....
//进行排序,排序时使用cmp函数,在cmp函数中定义需要的排序规则。
std::sort(Result.begin(), Result.end(), cmp);
输出结果如下:
14 3.02228 -23.1242
13 3.17108 -23.6015
12 3.31988 -24.0789
11 3.46867 -24.5562
10 3.61761 -25.0335
9 3.7665 -25.5108
8 3.9153 -25.9882
7 4.06426 -26.4655
6 4.21304 -26.9428
5 4.36184 -27.4202
4 4.51072 -27.8975
3 4.65966 -28.3748
2 4.80848 -28.8521
1 4.95727 -29.3295
0 5.10605 -29.8068