有没有比做这样的事情更好的方法遍历容器的索引了
for (auto i : view::iota(0, vec.size())
理想情况下,看起来像view::something(vec)
。
我知道我可以编写自己的函数来执行此操作,但是我想知道此功能是否已经存在。我也知道能够做这样的事情
for (auto [idx, elm] : view::zip(view::indices, vec))
经过一些代码检查后,我意识到可以写成view::indices(vec.size())
了,但是即使indices
的默认设置是ptrdiff_t
,也使用size()
结果产生size_t
,而我宁愿保留ptrdiff_t
。
答案 0 :(得分:0)
如果只需要 个索引,那么您的第一个就可以了。
还有较老的(但也不少)
for (auto i = 0; i < vec.size(); ++i)
如果您还需要元素,那么您的第二个元素就是上等的。