sort对vector中的结构体进行排序

首先定义一个结构体:

struct order_points//为以y坐标为基准排序后的点
{
    float y;
    Point2f p;
};

然后定义一个比较函数,并返回布尔值

bool comp(const order_points & a, const order_points & b)
{
    return a.y < b.y;
}

这个是从小到大的排序。

vector<order_points> vl_order_points;
for (size_t i = 0; i < undistort_1points.size(); i++)
        {
            left_order_point.y = undistort_1points[i].y;
            left_order_point.p = undistort_1points[i];
            vl_order_points.push_back(left_order_point);
        }
        sort(vl_order_points.begin(), vl_order_points.end(), comp);

转载:https://blog.csdn.net/qq_25254777/article/details/79984722

猜你喜欢

转载自blog.csdn.net/hshqing/article/details/82774505