在使用向量期间,我遇到了算法函数" for_each"的问题。我认为,主要问题是将函数从父类传递到派生类。但我不知道如何处理这些错误:
SFMLTest
error C3867: 'List::outF': non-standard syntax; use '&' to create a pointer to member
error C2672: 'std::for_each': no matching overloaded function found
并且List类派生到几个类,但我想从其中一个类中读出数据。 更改lambda解决方案或绑定解决方案后的代码:
class RobSec : public Robots {
public:
int number;
int wifi;
void outF(int i) {
cout << "" << i << endl;
}
class List : public RobSec, public RobF {
public:
vector<RobSec>RbSec;
vector<RobF>RbF;
vector<int>numb;
List(int k) {
vector<RobSec>RbSec(k);
vector<RobF>RbF(k);
}
~List() {
}
void setList(int size, RobSec *ArrSec, RobF *ArrF) {
for (int l = 0; l < size; l++) {
RbSec.push_back(ArrSec[l]);
RbF.push_back(ArrF[l]);
}
for_each(RbSec[0].number, RbSec[size - 1].number, RobSec::outF); //Errors C2672 and C3867
}
我总是遇到同样的错误:
for_each(RbSec[0].number, RbSec[size-1].number,[this](auto& i)
{ outF(i); });