Mar*_*ald 2 c++ iterator linked-list list erase
我目前正在尝试遍历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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到编译错误:
错误:没有匹配的函数调用 'std::__cxx11::list::erase(std::__cxx11::list::const_iterator&)' itr = myList.erase (itr);
到目前为止我所做的所有事情都是基于我在这里找到的 http://www.cplusplus.com/reference/list/list/erase/。
我还阅读了有关删除列表中项目的节点方法。我只是希望让这种方法发挥作用,因为它看起来更好,而且我很想知道我做错了什么。
你在使用 C++11 吗?std::list::eraseconst_iterator自 C++11 起仅支持s:http :
//en.cppreference.com/w/cpp/container/list/erase
| 归档时间: |
|
| 查看次数: |
1144 次 |
| 最近记录: |