我想知道如何才能进一步优化这个两级深度迭代。它每次迭代100万次,持续100万次。我试图通过使用i和j变量仅在其各自的循环内创建并且还将从container1 [i]获取的值缓存到c1中以不每次都搜索容器来削减一些时间。是否有任何人可以想到的优化?
float add = 0.0f;
int limit = 1000000;
for (int i = 0; i != limit; ++i) {
int c1 = container1[i];
for (int j = 0; j != limit; ++j) {
add += c1 * container2[j];
}
}
答案 0 :(得分:1)
您不需要嵌套循环,只需计算两个和的乘法:
float add = container1.Sum() * container2.Sum();