C ++。 for_each错误c2672和c3867

时间:2018-06-11 21:49:11

标签: c++ for-loop vector each

在使用向量期间,我遇到了算法函数" 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); });

0 个答案:

没有答案