美文网首页
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 仿函数

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