传递 greater 或 less

surongr 2011-07-02 11:52:49
我们知道 STL 的 sort 可以接受一个参数 greater<int> 或 less<int>
要是我想在自己定义的函数里调用 greater<int> 或 less<int>
该怎么做?
我想直接传递 f(a, b, greater<int>) 或者 less<int> 报错非法表达式
但是声明 great<int> g 传递 g 就可以
...全文
794 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
太乙 2011-07-02
  • 打赏
  • 举报
回复
传递对象!
pandm 2011-07-02
  • 打赏
  • 举报
回复
f(a, b, greater<int>()) //这样就可以了,你漏了一对小括号,greater<int>是一个类型,不是对象
qq120848369 2011-07-02
  • 打赏
  • 举报
回复
你的对象要重载<或者>,还是自己去看看greater<>和less<>重载了operator () 里边干嘛了就会懂了。
surongr 2011-07-02
  • 打赏
  • 举报
回复
template <class Cmp>
bool cmp(int a, int b, Cmp g)
{
return g(a, b);
}

我现在是这样做的 必须做成模板函数吗?
greater<int> 是什么类型?
taodm 2011-07-02
  • 打赏
  • 举报
回复
去找本《stl源码剖析》吧,这模板也不是3言2语就可以学好的。

65,179

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧