gpt4 book ai didi

c++ - 模板元编程 : Sum of 1 to n

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:14:55 26 4
gpt4 key购买 nike

有没有一种聪明的方法可以通过模板元编程计算连续数字的总和?这将是非模板算法,例如 1 到 100。

int i = 0;
for (int n = 1; n <= 100; n++)
i += n;

return i;

我考虑过使用可变参数添加函数并用参数列表填充它。但是我不确定如何创建参数列表。

// add function
template<typename T>
T add(T a) {
return a;
}

template<typename T, typename... Args>
T add(T a, Args... args) {
return a + add(args...); // a + a + a + .. + add()
}

最佳答案

template <int n>
struct SumOfNumbers {
static constexpr int value = n*(n+1)/2;
};

关于c++ - 模板元编程 : Sum of 1 to n,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45012511/

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