- 1. 求最小值/最大值
- 2. 排序
注:为了写出高质量的代码,一些简单的逻辑尽量用库函数去实现,减少代码量;
1. 求最小值/最大值- 普通vector 求最小值
std::vector x={0,2,3,7,4,1};
auto min_inter = std::min_element(x.begin(), x.end());
double min= *min_inter; // 值
int index = std::distance(x.begin(),min_inter); //索引
- map或者vector 根据需要根据某一维度数值获得最大最小值
// 使用lambda表达式
std::vector pts;
auto compare_x = [](const cv::Point2f &p0, const cv::Point2f &p1) -> bool {
return (p0.x < p1.x);
};
auto min_inter = std::min_element(pts.begin(), pts.end(),compare_x);
cv::Point2f min= *min_inter; // 值
int index = std::distance(pts.begin(),min_inter); //索引
以上当然可以直接进行排序,使用 sort函数
2. 排序
std::vector pts;
// 升序
auto sort_x = [](const cv::Point2f &p0, const cv::Point2f &p1) -> bool {
return (p0.x < p1.x);
};
std::sort(pts.begin(), pts.end(), sort_x);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)