这门课有什么用?

Raw*_*hi 2 c++ class

这节课是为了什么?

class EqualTo {
private:
   int target;
public:
   EqualTo(int i) : target(i) {}
   bool operator()(const int& i) const {
     return i == target;
   }
};             
Run Code Online (Sandbox Code Playgroud)

我在课堂上有这个课程,他们使用它的find功能如下:

it = list.find(EqualTo(3));
Run Code Online (Sandbox Code Playgroud)

谢谢

Mik*_*our 7

这是一个算子 ; 也就是说,可以像函数一样调用的对象.它比函数更灵活,因为它也可以包含状态并在调用时使用它.以下是如何直接使用它的示例:

EqualTo is5(5);   // Object to test whether numbers are 5

assert(is5(5));   // Returns true:  value is 5
assert(!is5(42)); // Returns false: value is not 5
Run Code Online (Sandbox Code Playgroud)

在这种情况下,它采用单个值并返回一个布尔值来告诉您该值是否满足某些条件; 执行该操作的仿函数称为谓词.

it = list.find(EqualTo(3));
Run Code Online (Sandbox Code Playgroud)

此示例使用谓词在容器中查找与条件匹配的元素.在这种情况下,它为您提供了一个指向第一个等于3的元素的迭代器.