【发布时间】:2021-12-11 06:55:11
【问题描述】:
什么是最好的、基于范围的 for 循环?
for (auto& i : just_a_vec )
还是for循环的迭代器?
for (std::vector<std::string>::iterator it = just_a_vec.begin(); it < just_a_vec.end(); it++)
【问题讨论】:
-
这能回答你的问题吗? Why use iterators instead of array indices?
-
@Philipp 基于范围的
for是迭代器之上的语法糖,没有这样的性能警告。 -
可读性最强、错误最少的内容。
-
只有在分析表明这是一个重大瓶颈时,才偏离最容易阅读/最难出错的地方。
-
也看
std::for_each()。支持这两个不支持的并行化。