当我第一次开始学习 Java 时,我记得我在想如何在 C++ 中创建一个 for-each 循环。但是,既然已经添加了它们并且我(略微)比以前更聪明,我不得不怀疑它们是否真的更有效率?
有两种情况我很好奇,第一种是传统数组,第二种是动态大小的对象,比如 std::vector。
我预测使用 for 循环迭代传统的固定大小数组会更有效,使用基于范围的循环动态分配的存储会更快。
int fvalues[NUMBER];
for(unsigned int x = 0; x < NUMBER; ++x) {
//Do Stuff
}
for(auto&& i : fvalues) {
//Do Stuff
}
std::vector<int> dvalues = std::vector<int>(NUMBER);
for(unsigned int x = 0; x < NUMBER; ++x) {
//Do Stuff (not adding or removing from vector)
}
for(auto&& i : dvalues) {
//Do Stuff (not adding or removing from vector)
}