我可以将remove_if函数与下面的test()函数一起使用。但是,当我尝试将对象传递给remove_if时,出现了本文标题中提到的错误。我个人认为该错误与变量/函数范围有关。
我的代码:
<div onFocus={this.onFocus} onBlur={this.onBlur}>
答案 0 :(得分:1)
问题在于您正在students
容器上进行迭代,该容器看不到比Student_info
类型的对象更远的距离,但是要调用的方法在Grade_gen
中定义类。为了能够使用调用remove_if
的对象,我建议传递一个捕获this
的lambda函数(在这种情况下,this
的类型为Grade_gen*
)。>
remove_if(
students.begin(),
students.end(),
[this](Student_info& si) { return this->has_passed(si); }
);