#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
C++的函数对象与二元谓词的问题
- 写回答
- 好问题 提建议
- 追加酬金
- 关注问题
微信扫一扫
分享- 邀请回答
2条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
fefe82 2015-10-02 14:17最佳回答 专家已采纳不是只能用 < 。
但是它并不知道你的谓词是啥,所以它会把你给它的任何东西当成 小于 关系来使用。
你在 max_element 里给了一个 大于 当谓词,结果就是求出了最小值。
采纳该答案 已采纳该答案 专家已采纳评论解决 无用打赏举报微信扫一扫
分享评论登录 后可回复...
查看更多回答(1条)
报告相同问题?
提交
相关推荐 更多相似问题
- 2015-10-02 07:14回答 2 已采纳 不是只能用 < 。 但是它并不知道你的谓词是啥,所以它会把你给它的任何东西当成 小于 关系来使用。 你在 max_element 里给了一个 大于 当谓词,结果就是求出了最小值。
- 2016-02-23 15:14回答 3 已采纳 ``` 简单来说,就是用一个函数指针传一个自己写的比较函数,告诉sort你的排序规则。从而实现按照特定方式(比如结构体排序按照某个字段排序,或者升序降序排序,或者字符串排序按照ascii顺
- 2022-02-11 23:11回答 1 已采纳 _First, _Last, _UFirst, _ULast都是迭代器这是函数模板,具体的参数类型根据传入参数类型来确定。比如,如果第三个参数传入的是函数名,那么_Pred就是指向这个函数的函数指针;
- 2020-03-26 10:36tianguiyuyu的博客 在c++ STL算法中,在算法的输入和输出中,一定要分清是函数对象,还是谓词,还是迭代器。 具体看如下代码,注意看注释: #include<iostream> using namespace std; #include "string" #include <...
- 2019-11-22 11:21万里归来少年心的博客 1.概念 返回bool类型的仿函数称为谓词 ... 如果operator()接受两个参数,叫做二元谓词。 2.一元谓词 #include<iostream> #include<vector> #include<algorithm> using namespace std; cla...
- 2021-09-05 23:01MakChiKin的博客 如果operator()接受两个参数,那么叫做二元谓词 #include"predicate_01.h" // 1.一元谓词 struct GreaterFive { bool operator()(int val) { return val > 5; } }; /* 添加数组元素 @ arr: int数组 */ ...
- 2016-11-25 11:05回答 1 已采纳 http://www.iteye.com/problems/103654
- 2021-05-16 23:36回答 2 已采纳 日本的第五代计算机的编程语言曾经选择Prolog语言,在当时就是代表未来科技的编程语言。Prolog 就是实现感知机器的希望。但多年的实践证明,Prolog 存在极高的不确定性,而且经常被 NP 问题
- 2016-11-24 15:37回答 1 已采纳 https://zhidao.baidu.com/question/514390829.html
- 2021-10-30 10:43Worthwhile_DUT的博客 1. 函数对象可以有自己的状态。我们可以在类中定义状态变量,这样一个函数对象在多次的调用中可以共享这个状态。但是函数调用没这种优势,除非它使用全局变量来保存状态 2. 函数对象有自己特有的类型,而普通函数无...
- 2020-09-24 20:55si_yu_ge的博客 //对字符串进行不区分大小写排序的二元谓词 template <typename T> void show( const T& a){ for(auto p = a.begin(); p != a.end(); p ++) cout *p ; cout ; } class Compare{ public: bool operator()(const...
- 2020-08-26 11:11凉开水白菜的博客 一元谓词 #include <iostream> #include <algorithm> //算法头文件 #include <list> #include <vector> using namespace std; // 返回类型为bool类型 的operator() struct GreatStruct { ...
- 2019-07-05 12:56回答 3 已采纳 It's not possible to do it that way, but you can do it using the eval method, like this: $result
- 2016-11-25 07:19回答 1 已采纳 https://zhidao.baidu.com/question/1112521970944952819.html
- 2018-09-05 12:11回答 1 已采纳 The XPath was OK, this just removes the first bit inside the first [ as it's not needed. To outpu
- 2019-12-26 10:19李嘉图Y的博客 函数对象或仿函数 functor(函数对象或函数)形式:object + () 这包括正常函数,函数指针和 () 运算符...函数对象是泛型编程的力量和纯抽象概念的另一个例子。我们可以说任何行为都像函数的对象是函数。因此,如果...
- 2021-01-13 15:39我必上岸!的博客 2、函数对象使用重载的()时,行为类似与函数调用,也叫仿函数 本质 函数对象(仿函数)是一个类,不是一个函数 函数对象的使用 特点 1、函数对象在使用时,可以向普通函数那样调用,可以有参数,可以有返回值 2、函数...
- 2020-10-28 17:38eastRiseWm的博客 24.map、函数对象、一元、二元谓词知识点:1. [map](https://en.cppreference.com/w/cpp/container/map)1.1. 添加数据:1.2.判断是否添加成功:1.3.循环:1.4.删除:1.5查找:2. [multimap]...
- 2015-06-24 17:39回答 1 已采纳 Like the error message suggests, the __call magic method only takes 2 arguments: the name of the m
- 2021-01-20 17:47Ennocad的博客 函数对象 重载函数调用操作符的类,其对象常称为函数对象(function object),即它们是行为类似函数的对象。一个类对象,表现出一个函数的特征,就是通过...二元函数对象:函数参数2个; 一元谓词 函数参数1个,函数
- 没有解决我的问题, 去提问