首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用std::使用Android进行排序

无法使用std::使用Android进行排序
EN

Stack Overflow用户
提问于 2015-07-05 15:59:12
回答 1查看 625关注 0票数 0

ndk-build总是抱怨std::sort()有错误的参数,并且在相同的消息中找不到它。ndk是否使用其他函数?

候选人需要2个参数,其中3个提供了sort(centroids.begin() + i * 10, centroids.begin() + (i + 1) * 10, pointXGreater); 错误:没有调用‘排序’( __gnu_cxx::__normal_iterator*,std::vector > >,__gnu_cxx::__normal_iterator*,std::vector > >,removeConvexity(cv::Mat,cv::Mat,cv::Mat)::&)的匹配函数。

代码语言:javascript
复制
for (int i = 0; i < 10; i++)
{
    sort(centroids.begin() + i * 10, centroids.begin() + (i + 1) * 10, pointXGreater);
}

这就是函数调用。

代码语言:javascript
复制
vector<cv::Point> centroids;
centroids.reserve(100);

for (int i = 0; i < contours.size(); i++) {
    vector<cv::Point> contour = contours.at(i);
    Moments mom = moments(contour);
    cv::Point center = cv::Point(int(mom.m10 / mom.m00), int(mom.m01 / mom.m00));
    centroids.push_back(center);
}

std::reverse(centroids.begin(), centroids.end());

struct {
    bool operator()(const cv::Point p1, const cv::Point p2) {
        return p1.x < p2.x;
    }
} pointXGreater;

不知怎么的,我只能编译一次。现在问题又来了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-08 18:56:01

代码语言:javascript
复制
static bool pointXGreater(const cv::Point p1, const cv::Point p2) 
{ 
    return p1.x < p2.x; 
} 
for (int i = 0; i < 10; i++) 
{
    sort(centroids.begin() + i * 10, centroids.begin() + (i + 1) * 10, pointXGreater); 
}

解决了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31232222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档