从字符串中删除重复字符,用迭代器报错

BirDy_1901 2017-06-20 05:33:07

调试是没报错,但是输入字符串运行后,提示string iterator not incrementable
...全文
292 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ArWen 2017-07-16
  • 打赏
  • 举报
回复
一般类似在列表中删除这种操作,采用倒序方式要好得多
华山沦贱 2017-07-16
  • 打赏
  • 举报
回复
当一个Container执行了一次earse操作之后,原来用来遍历的iterator就失效了,其行为是不可预测的,具体情况由实现决定。同时earse操作会返回一个指向container下一个元素的iterator,如果想继续遍历,就得用返回的iterator继续操作。
for (  auto it = s.begin(); it != s.end(); )
{
    If((*it)->regin == s[i])
    {
        it = s.earse(it);
    }
    else
    {
        ++it;
    }
}

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧