gpt4 book ai didi

c++ - 从列表中删除特定对象 (c++)

转载 作者:行者123 更新时间:2023-11-28 03:33:20 25 4
gpt4 key购买 nike

我想从我的列表 wielrennerslist 中删除一个特定的对象,但有些方法在编译时出错。

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

最佳答案

您可以使用迭代器和 std::list::erase像这样删除有问题的元素:

wielrennerslist.erase(iter);

否则,remove 方法应该这样使用:

wielrennerslist.remove(*iter);

但是这个方法并没有做我认为你想做的事情。它将删除等于 N 位置元素值的所有 元素。但如果这是您想要的,那么您需要对 Wielrenner 对象进行相等性比较。参见 std::list::remove .

关于c++ - 从列表中删除特定对象 (c++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11922164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com