c++ 我如何迭代一个字符串,也知道索引(当前位置)?

通常当迭代通过字符串(或任何可枚举对象)时,我们不仅对当前值感兴趣,而且对位置(索引)感兴趣。要通过使用string :: iterator来完成这个,我们必须维护一个单独的索引:

string str ("Test string");
  string::iterator it;
  int index = 0;
  for ( it = str.begin() ; it < str.end(); it++ ,index++)
  {
         cout << index << *it;
  }

上面的风格似乎似乎并不比“c风格”

string str ("Test string");
  for ( int i = 0 ; i < str.length(); i++)
  {
         cout << i << str[i] ;
  }

在Ruby中,我们可以以优雅的方式获得内容和索引:

"hello".split("").each_with_index {|c, i| puts "#{i} , #{c}" }

那么,C中迭代遍历可枚举对象并跟踪当前索引的最佳实践是什么?

我从来没有听说过这个具体问题的最佳实践。然而,一个最佳实践是使用解决问题的最简单的解决方案。在这种情况下,数组风格访问(或c风格,如果你想调用它)是最简单的方法来迭代,同时索引值可用。所以我一定会推荐这样。
相关文章
相关标签/搜索