Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
std::如果比较函数编译器错误,则查找_ 我写了一个简单的程序来熟悉C++及其核心库,因为我刚开始看它。_C++_Stl - Fatal编程技术网

std::如果比较函数编译器错误,则查找_ 我写了一个简单的程序来熟悉C++及其核心库,因为我刚开始看它。

std::如果比较函数编译器错误,则查找_ 我写了一个简单的程序来熟悉C++及其核心库,因为我刚开始看它。,c++,stl,C++,Stl,下面是我写的被接受的答案() 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

下面是我写的被接受的答案()

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));
结构特殊比较:公共标准::一元函数 { 显式特殊比较(大小id):id(id){ 布尔运算符(){ 返回cr_arg.composeId==id; } 大小\u t id\u; }; vector::iterator crIter=find_if(ratings.begin,ratings.end(),special_compare(ID)); 但是编译器抱怨说,
find\u if
不接受此类参数。我在其他答案中看到,他们使用bind,但在我传递类(struct)本身时,当他们需要调用类的成员时,就会使用bind。此外,我希望避免使用boost,因为我只是编写了几行程序,并且发现std::bind不在函数范围内,而且我没有找到bind库


我该怎么做才能解决这个问题呢?

ratings.begin,ratings.end()
这些参数中缺乏语法对称性令人担忧。难道不是
rating.begin()
?我觉得自己太笨了!我还不习惯没有括号的函数不会引起编译器错误。多亏了这两个!顺便说一句,在C++11中,所有的
一元函数
都是不推荐的。