繁体   English   中英

从容器创建一系列索引的最惯用的方法是什么?

[英]What is the most idiomatic way of creating a range of indices from a container?

有没有比做这样的事情更好的方法来遍历容器的索引

for (auto i : view::iota(0, vec.size())

理想情况下,看起来像这样的view::something(vec)

我知道我可以编写自己的函数来执行此操作,但是我想知道此功能是否已经存在。 我也知道能够做这样的事情

for (auto [idx, elm] : view::zip(view::indices, vec))

经过一些代码检查,我意识到可以写成view::indices(vec.size()) ,但是即使indicesptrdiff_t作为默认值,使用size()也会导致它产生size_t ,我宁愿保留ptrdiff_t

如果需要索引,那么第一个就可以了。

还有较旧的(但同样不错)

for (auto i = 0; i < vec.size(); ++i)

如果您还需要这些元素,那么您的第二个就是上等的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM