夕阳_武士
2015-10-02 07:14
采纳率: 64.3%
浏览 2.1k

C++的函数对象与二元谓词的问题

#include
#include
#include
#include
#include
bool ab(int mem1, int mem2)
{
if (mem1 > mem2)
return true;
else
return false;
}
int main()
{
vector vec;
vec.push_back(7);
for (int i = 0; i < 10; i++)
{
vec.push_back(i);
}
cout<< *max_element(vec.begin(), vec.end(), ab)<<endl;
system("pause");
return 0;
}
为什么这样就输出的是0?难道二元谓词只能用“<”的?
求解答!!1

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • fefe82 2015-10-02 14:17
    最佳回答

    不是只能用 < 。

    但是它并不知道你的谓词是啥,所以它会把你给它的任何东西当成 小于 关系来使用。

    你在 max_element 里给了一个 大于 当谓词,结果就是求出了最小值。

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题