【发布时间】:2019-02-12 05:36:20
【问题描述】:
我有一个对象列表,我想在某个对象达到 if 条件后删除它。但我在使用它时遇到问题。主要是因为 if 条件抛出了错误。
另外我不知道我是否需要创建一个临时文件夹值并让它成为我的 if 条件?老实说,我对迭代器有点困惑,任何额外的信息都可能会有所帮助。
void removeFolder(string fName)
{
list<Folder> folders = this->getFolders();
for (list<Folder> itr = folders.begin(); itr != folders.end();)
{
if (fName == *itr)
itr = folders.erase(itr);
else
++itr;
}
}
【问题讨论】:
-
Folder是否与folder相同?您是否编写了一个运算符来测试fName(即string)和*itr(即folder)的相等性? -
您将
string与Folder进行比较。如果您有一个返回Folder名称的函数,您可以使用它。例如。if ( fName == (*iter).getName() ).