【问题标题】:interator with ++ in c++ [duplicate]c++中带有++的迭代器[重复]
【发布时间】:2015-03-11 13:10:04
【问题描述】:

说,我有一个迭代器

vector<int> myVector;
vector<int>::iterator myIt;
for (myIt=myVector.begin(); myIt!=myVector.end(); ++myIt)
{

}

如果我使用 myIt++ 而不是 ++myIt 会怎样。

当我阅读时,我得到了这个问题 How do I iterate over a Constant Vector? 它说“请阅读有关前缀与后缀增量运算符的信息。it++ 应该是 ++it,并且在极少数情况下(即在迭代时擦除时)需要 it++。”所以,我有点困惑

谢谢。

【问题讨论】:

  • @Borgleader 根据迭代器实现和优化器质量,性能可能会稍微下降。
  • 请在询问前进行研究
  • 有一点区别,post增量必须为返回值做一个副本
  • @Borgleader 再说一次,过早的悲观情绪可能更糟。在这里使用 pre-increment 不会丢失任何东西,并且可能会有所收获。

标签: c++ iterator operator-overloading


【解决方案1】:

在您使用它的上下文中,结果将是相同的。但是后自增和前自增算子是不同的东西,基本上可以独立实现。

【讨论】:

  • 让我澄清一下。我收到了这个问题,当我阅读stackoverflow.com/questions/4890497/… 时,它说“请阅读前缀与后缀增量运算符。it++ 应该是 ++it,并且在极少数情况下需要 it++(即在迭代时擦除)。”所以,我有点困惑
猜你喜欢
  • 1970-01-01
  • 2011-11-13
  • 2014-01-18
  • 1970-01-01
  • 2012-03-23
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 2012-09-14
相关资源
最近更新 更多