【发布时间】:2013-01-02 21:46:00
【问题描述】:
在现代 C++ 中,当您只需要每个元素的值时,用于迭代像字符串或向量这样的顺序集合的习惯用法是简短而优雅的:
for (auto x: xs)
当你还需要索引时,它就没有那么优雅了:
for (size_t i = 0; i != xs.size() ++i)
...除非最近有一些我还没有赶上的发展。 C++11 是否有首选的方式来做后者,还是上面的方式仍然像它一样好?
【问题讨论】:
-
使用 zip_iterator 来压缩你的迭代器和counting_iterator怎么样?你可以编写一个通用的容器包装类来处理这种类型的迭代器。