我读到基于范围的循环在某些编程语言上具有更好的性能。在 C++ 中是否如此。例如;
int main()
{
vector<int> v = {1, 2, 3, 4, 5};
auto size = v.size();
// LOOP1
for (int i = 0; i < size; i++) {
// do something with v[i]
}
// LOOP2
for (int& val : v) {
// do something with val
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
是否LOOP2比规模巨大LOOP1时表现更好vector?如果是这样,为什么?