gpt4 book ai didi

C++ 没有用于 list::erase 的匹配函数

转载 作者:太空宇宙 更新时间:2023-11-03 10:25:28 24 4
gpt4 key购买 nike

我目前正在尝试循环访问 char 类型的链表。当遇到参数时(如果它包含字母“w”),我尝试使用 list::erase 删除列表项。我只是希望收到一些关于使用此函数的建议,我只看到类型为 int 链表的示例,我无法判断它是否行得通,因为它是 char 还是什么原因。当我尝试编译以下代码时:

void filterFile(list <char> &myList)
{
list<char>::const_iterator itr;

for (itr = myList.begin(); itr != myList.end(); itr++ )
{
if (*itr == 'w' || *itr == 'W'){
itr = myList.erase (itr);
}
}
}

我收到编译错误:

error: no matching function for call to ‘std::__cxx11::list::erase(std::__cxx11::list::const_iterator&)’ itr = myList.erase (itr);

到目前为止我所做的一切都是基于我在这里找到的 http://www.cplusplus.com/reference/list/list/erase/ .

我还阅读了有关删除列表中项目的节点方法。我只是希望让这种方法工作,因为它看起来更好,而且我很想知道我做错了什么。

最佳答案

您使用的是 C++11 吗?自 c++11 起,std::list::erase 仅支持 const_iterator: http://en.cppreference.com/w/cpp/container/list/erase

关于C++ 没有用于 list::erase 的匹配函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37108599/

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