0

我正在编写一个简单的程序来熟悉 c++ 及其核心库,因为我刚开始研究它。

C++ std::find之后,我写了一个自定义比较器接受的答案(https://stackoverflow.com/a/14322617/611901 )

struct special_compare : public std::unary_function<composerRating, bool>
    {
        explicit special_compare(size_t id) : id_(id) {}
        bool operator() (const composerRating &cr_arg) const {
            return cr_arg.composerID == id_;
        }
        size_t id_;
    };

    vector<composerRating>::iterator crIter = find_if(ratings.begin, ratings.end(), special_compare(ID));

但是编译器抱怨find_if不接受这种论点。我在其他答案中看到他们使用绑定,但是当他们需要调用类的成员时使用它,而我正在传递类(结构)本身。另外,我宁愿避免使用 boost,因为我只是写了几行程序,它接缝 std::bind 不在函数的范围内,而且我没有找到绑定库。

我应该怎么做才能解决问题?

4

0 回答 0