0

http://www.cplusplus.com/reference/map/map/begin/的示例中

// map::begin/end
#include <iostream>
#include <map>

int main ()
{
  std::map<char,int> mymap;
  std::map<char,int>::iterator it;

  mymap['b'] = 100;
  mymap['a'] = 200;
  mymap['c'] = 300;

  // show content:
  for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it)
    std::cout << it->first << " => " << it->second << '\n';

  return 0;
}

为什么它在 for 循环中预先增加了迭代器?

4

1 回答 1

1

BoBTFish 的评论是正确的:使用前增量是因为你是这样写的。在我的其余答案中,我将解释为什么首选此选项,即推荐的做法。

增量之前的迭代器值未在表达式处使用。该表达式只想增加迭代器,而不使用其先前的值。

这种情况下,前置自增算子恰到好处,应该首选。它节省了在增量之前存储值的要求,对于后增量运算符始终存在。

于 2013-07-12T10:44:10.020 回答