草庐IT

Predicate

全部标签

c++ - 在 C++ 中定义谓词函数的正确方法

我正在尝试编写用于STL算法的谓词函数。我看到它们是定义谓词的两种方式:(1)使用如下简单函数:boolisEven(unsignedinti){return(i%2==0);}std::find_if(itBegin,itEnd,isEven);(2)使用operator()函数如下:classchecker{public:booloperator()(unsignedinti){return(i%2==0);}};std::find_if(itBegin,itEnd,checker);我对第二种类型有更多用途,因为我通常想创建一个包含一些成员的谓词对象并在算法中使用它们。当我在检查

c++ - 在 C++ 中定义谓词函数的正确方法

我正在尝试编写用于STL算法的谓词函数。我看到它们是定义谓词的两种方式:(1)使用如下简单函数:boolisEven(unsignedinti){return(i%2==0);}std::find_if(itBegin,itEnd,isEven);(2)使用operator()函数如下:classchecker{public:booloperator()(unsignedinti){return(i%2==0);}};std::find_if(itBegin,itEnd,checker);我对第二种类型有更多用途,因为我通常想创建一个包含一些成员的谓词对象并在算法中使用它们。当我在检查

c++ - 指针如何完全排序?

C++中的指针通常只能比较是否相等。相比之下,只有两个指向同一个完整对象的子对象(例如数组元素)的指针才允许小于比较。所以给定T*p,*q,一般情况下评估p是非法的.标准库包含仿函数类模板std::less等,其中包含内置运算符.但是,标准对指针类型有这样的说法(20.8.5/8):Fortemplatesgreater,less,greater_equal,andless_equal,thespecializationsforanypointertypeyieldatotalorder,evenifthebuilt-inoperators,>,,>=donot.如何实现?是否有可能实

c++ - 指针如何完全排序?

C++中的指针通常只能比较是否相等。相比之下,只有两个指向同一个完整对象的子对象(例如数组元素)的指针才允许小于比较。所以给定T*p,*q,一般情况下评估p是非法的.标准库包含仿函数类模板std::less等,其中包含内置运算符.但是,标准对指针类型有这样的说法(20.8.5/8):Fortemplatesgreater,less,greater_equal,andless_equal,thespecializationsforanypointertypeyieldatotalorder,evenifthebuilt-inoperators,>,,>=donot.如何实现?是否有可能实

c++ - 将 lambda 传递给函数模板

我正在学习C++,我正在尝试实现一个二进制搜索函数,该函数可以找到谓词所包含的第一个元素。该函数的第一个参数是一个vector,第二个参数是一个计算给定元素的谓词的函数。二分查找函数如下所示:templateintbinsearch(conststd::vector&ts,bool(*predicate)(T)){...}如果像这样使用,这将按预期工作:boolgte(intx){returnx>=5;}intmain(intargc,char**argv){std::vectora={1,2,3};binsearch(a,gte);return0;}但是如果我使用lambda函数作为

c++ - 将 lambda 传递给函数模板

我正在学习C++,我正在尝试实现一个二进制搜索函数,该函数可以找到谓词所包含的第一个元素。该函数的第一个参数是一个vector,第二个参数是一个计算给定元素的谓词的函数。二分查找函数如下所示:templateintbinsearch(conststd::vector&ts,bool(*predicate)(T)){...}如果像这样使用,这将按预期工作:boolgte(intx){returnx>=5;}intmain(intargc,char**argv){std::vectora={1,2,3};binsearch(a,gte);return0;}但是如果我使用lambda函数作为

java - Java 8 中的谓词和函数接口(interface)有什么区别?

我知道这可能是关于SO的一个非常基本的问题,但我想知道Java8中的Predicate和Function接口(interface)有什么区别?PredicatepredicateTest=(s)->s.length()>5;System.out.println(predicateTest.test("Predicate"));FunctionfunctionTest=str->str.length()>5;System.out.println(functionTest.apply("Function"));在我的示例中,两者都返回true。唯一的问题是调用方式不同?

java - Java 8 中的谓词和函数接口(interface)有什么区别?

我知道这可能是关于SO的一个非常基本的问题,但我想知道Java8中的Predicate和Function接口(interface)有什么区别?PredicatepredicateTest=(s)->s.length()>5;System.out.println(predicateTest.test("Predicate"));FunctionfunctionTest=str->str.length()>5;System.out.println(functionTest.apply("Function"));在我的示例中,两者都返回true。唯一的问题是调用方式不同?

Java 接口(interface)类似于 Predicate,但没有参数

我正在寻找一个像Predicate这样预先存在的功能接口(interface),但它的test方法不带参数。 最佳答案 您正在寻找BooleanSupplier。https://docs.oracle.com/javase/8/docs/api/java/util/function/BooleanSupplier.html 关于Java接口(interface)类似于Predicate,但没有参数,我们在StackOverflow上找到一个类似的问题: htt

Java 接口(interface)类似于 Predicate,但没有参数

我正在寻找一个像Predicate这样预先存在的功能接口(interface),但它的test方法不带参数。 最佳答案 您正在寻找BooleanSupplier。https://docs.oracle.com/javase/8/docs/api/java/util/function/BooleanSupplier.html 关于Java接口(interface)类似于Predicate,但没有参数,我们在StackOverflow上找到一个类似的问题: htt