gpt4 book ai didi

c++ - 在C++中,当一个数组的元素在一个循环中被多次使用时,是不是把它赋值给另一个元素更好?

转载 作者:太空宇宙 更新时间:2023-11-04 15:11:38 25 4
gpt4 key购买 nike

假设我有一个循环,可以对数组 x 进行一些数学运算。在每次迭代时在循环内分配一个临时 double 值更好还是我应该每次都使用 array[i]

我所说的更好是指使用 C++ 在性能方面。我想知道 C++ 是否有一些我正在破坏的矢量化或现金优化?

此外,如果我使用此数组调用一个函数,并且我可能多次需要一个函数的值怎么办,所以我通常对函数执行相同的操作。我认为这比多次调用该函数要好。

如果循环使用 omp parallel 怎么样,我认为这应该是安全的,对吗?

for(int i=0; i<N; i++){
double xi = X[i];
double fi = f(xi);
t[i] = xi*xi + fi + xi/fi;
}

最佳答案

elcuco 是正确的。任何称职的编译器都能够优化这种微不足道的东西。这里重要的是代码的可读性,我个人认为 X[i] 在这种情况下更容易查看。

我会注意到,如果您重复进行很长的陈述,即 X.something.something.darkside[i][j],使用明确命名的引用可能是有意义的,即 auto & the_emperor = X.something.something.darkside[i][j].

关于c++ - 在C++中,当一个数组的元素在一个循环中被多次使用时,是不是把它赋值给另一个元素更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57266166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com