gpt4 book ai didi

C++ 数组指针 [] 或++

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:28 25 4
gpt4 key购买 nike

假设我想遍历一个 double 组并对它们求和。我有两种方法可以做到这一点。

一个)

double sum (double * series, int size) {
double sum = 0.0;
for (int i = 0; i < size; i++) {
sum += *series++;
}
return sum;
}

B)

double sum (double * series, int size) {
double sum = 0.0;
for (int i = 0; i < size; i++) {
sum += series[i];
}
return sum;
}

哪个更好,为什么/什么时候我应该使用一个而不是另一个。

最佳答案

这是可读性的问题,应该不会影响性能。我认为 B 是最可读的,因此更可取。

我还可以提出第三种变体,它是基于范围的(注意 beginend 参数):

double sum (double* begin, double* end) {
double sum = 0.;
for (double* it = begin; it != end; ++it) {
sum += *it;
}
return sum;
}

在许多情况下,这是惯用的 C++,并且更容易泛化。这并不是说它总是更可取,它只是关于可读性和可维护性问题的另一种变体。

关于C++ 数组指针 [] 或++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9446750/

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