【发布时间】: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