0
내 목록에서 특정 개체를 제거하고 싶습니다. wielrennerslist
일부 컴파일하는 동안 오류가 발생합니다.목록에서 특정 개체 제거 (C++)
cout << "Wielrenner" << endl;
list<Wielrenner> wielrennerslist = wielerploegOB.getWielrennersList();
cout << "Welke wielrenner wil je verwijderen?" << endl;
// Alle objecten afprinten in de lijst
for (list<Wielrenner>::iterator it = wielrennerslist.begin(); it != wielrennerslist.end(); it++) {
Wielrenner wielrennerOB = *it;
cout << teller << " - " << wielrennerOB.getVoornaam() << " " << wielrennerOB.getAchternaam() << endl;
teller++;
}
cin >> inputID;
// Naar het object gaan
int N = inputID; /* index of the element you want to retrieve */
if (wielrennerslist.size() > N) {
list<Wielrenner>::iterator iter = wielrennerslist.begin();
std::advance(iter, N);
// 'it' points to the element at index 'N'
Wielrenner* wielrennerOB2;
wielrennerOB2 = &*iter;
wielrennerslist.remove(*wielrennerOB2); // something wrong with this?
wielerploegOB.setWielrennerList(wielrennerslist);
}//if
어떤 오류가 발생합니까? 그리고 여기에 코드를 들여 쓰기에주의를 기울일 수 있습니까? 레벨 당 4 칸이 트릭을합니다. 그렇게하면 우리가 더 쉽게 읽을 수 있습니다. – Bart
제거 할 요소를 가리키는 반복기가 이미 있으므로 목록의 [erase()] (http://www.cplusplus.com/reference/stl/list/erase/) 함수를 사용하지 않으시겠습니까? –
'list :: remove'는 당신이 생각하는 것을 여기서는하지 않는다고 생각합니다. 정말'list :: erase'를 사용하고 싶다고 생각합니다. 업데이트 된 대답을보십시오. – juanchopanza