美文网首页
find_if 仿函数

find_if 仿函数

作者: 杰罗xr | 来源:发表于2021-11-09 16:04 被阅读0次

一个或者结构重载小括号运算符 使其看起来像一个函数
注意 vector里面存的是非指针 重载的小括号的参数也要是非指针 vector里存的变量类型要和小括号的参数类型一致


struct FindRv
{
    SnakeBody body;
    FindRv(SnakeBody& body) {
        this->body = body;
    }

    bool operator()(SnakeBody& sb) {
        return body == sb;
    }
};
struct FindPv
{
    SnakeBody body;
    FindPv(SnakeBody body) {
        this->body = body;
    }

    bool operator()(SnakeBody* sb) {
        return body == sb;
    }
};

int main()
{

    std::vector<SnakeBody> rv;
    std::vector<SnakeBody*> pv;

    rv.push_back(SnakeBody(1, 2, 1));
    pv.push_back(new SnakeBody(1, 1, 1));

    SnakeBody tsb(1,1,2);

    std::find_if(rv.begin(), rv.end(), FindRv(tsb));
    std::find_if(pv.begin(), pv.end(), FindPv(tsb));

}

相关文章

  • find_if 仿函数

    一个类或者结构重载小括号运算符 使其看起来像一个函数注意 vector里面存的是非指针 重载的小括号的参数也要是非...

  • [GeekBand] STL与泛型编程-3

    本篇笔记主要列出各个算法的函数模板。非变异算法 for_each find find_if adjacent_fi...

  • C++高级 C++算法源码全盘阅读与算法包实战

    1.C++函数适配器find_if 查找值equal_to 比较两个值是否相等bind2nd 函数适配器 2.算法...

  • find和find_if

    find 用于查找第函数的第三个参数 find_if 用于查找自定义的相等关系 https://blog.csdn...

  • STL学习笔记之算法(二)

    仿函数、仿函数类、函数等 条款38:把仿函数类设计为用于值传递 STL中的习惯是当传给函数和从函数返回时函数对象也...

  • C++仿函数

    仿函数 仿函数又称为函数对象,是一种能够行使函数功能的类,该类重载了operator()运算符,调用仿函数的时候实...

  • 【通俗易懂C++ STL模板库】find_if()、plus,f

    STL算法--find_if() #include #include #include #incl...

  • 仿函数

    什么是仿函数 Function Object ,函数对象,是泛型编程强大威力和纯粹抽象概念的强力例证,任何一个东西...

  • STL算法(查找)

    简介 adjacent_findbinary_searchcout/cout_iffind/find_if/equ...

  • 函数对象(仿函数)

    1.1 知识点 函数对象概述 预定义函数对象 辅助函数对象 适配器 函数对象使用方法 1.2 实验环境 g++ u...

网友评论

      本文标题:find_if 仿函数

      本文链接:https://www.haomeiwen.com/subject/alwmzltx.html