![](/img/trans.png)
[英]What is the most idiomatic way to “delay” the construction of a C++ object?
[英]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())
,但是即使indices
将ptrdiff_t
作为默认值,使用size()
也会导致它产生size_t
,我宁愿保留ptrdiff_t
。
如果只需要索引,那么第一个就可以了。
还有较旧的(但同样不错)
for (auto i = 0; i < vec.size(); ++i)
如果您还需要这些元素,那么您的第二个就是上等的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.