您当前的位置: 首页 >  c++

Jave.Lin

暂无认证

  • 4浏览

    0关注

    704博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++ “void std::sort(const _RanIt,const _RanIt)”: 应输入 2 个参数,却提供了 3 个 - 已解决

Jave.Lin 发布时间:2020-07-29 18:57:44 ,浏览量:4

在使用 #include 中的 sort 函数

遇到 “void std::sort(const _RanIt,const _RanIt)”: 应输入 2 个参数,却提供了 3 个 之类的错误

问题的出现

如下:

有一个 Camera 类下有一个函数声明:bool rendererCmp(MeshRenderer* a, MeshRenderer* b); 注意不是静态(static)的 在这里插入图片描述 使用 sort 中第三个参数使用该方法:

        // 排序 renderers
        std::sort(renderers.begin(), renderers.end(), rendererCmp);

然后就报错了: 在这里插入图片描述

解决方法: 使用 bind 封装比较方法
  • 排序sort函数报错“应输入 2 个参数,却提供了 3 个”
  • C++拾遗–bind函数绑定
将用于比较的函数声明为 static 静态函数
  • 实战c++中的vector系列–使用sort算法对vector进行排序(sort函数“应输入 2 个参数,却提供了 3 个)
将比较函数用 lambda 方式来传入

也是上面 static 那篇:

  • 实战c++中的vector系列–使用sort算法对vector进行排序(sort函数“应输入 2 个参数,却提供了 3 个)

然后我使用的是 static 的方式,比较简洁。

在这里插入图片描述 这样就不会报错了。

关注
打赏
1664331872
查看更多评论
立即登录/注册

微信扫码登录

0.2262s