首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用反向迭代器调用erase

如何使用反向迭代器调用erase
EN

Stack Overflow用户
提问于 2009-12-02 09:41:10
回答 12查看 78.5K关注 0票数 213

我正在尝试这样做:

代码语言:javascript
运行
复制
for ( std::list< Cursor::Enum >::reverse_iterator i = m_CursorStack.rbegin(); i != m_CursorStack.rend(); ++i )
{
    if ( *i == pCursor )
    {
        m_CursorStack.erase( i );
        break;
    }
}

然而,erase需要一个迭代器,而不是反向迭代器。有没有一种方法可以将反向迭代器转换为常规迭代器,或者另一种方法将该元素从列表中删除?

EN

Stack Overflow用户

发布于 2012-09-22 01:04:21

我只想澄清一些事情:在上面的一些评论和答案中,erase的可移植版本被提到为(++i).base()。但是,除非我遗漏了什么,否则正确的语句是(++ri).base(),这意味着您可以‘递增’reverse_iterator (而不是迭代器)。

昨天我遇到了做类似事情的需要,这篇文章很有帮助。谢谢大家。

票数 1
EN
查看全部 12 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1830158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档