9. 计算内积函数
Posted hello-nolan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9. 计算内积函数相关的知识,希望对你有一定的参考价值。
题目:
编写一个模板函数 inner_product,返回值是∑a[i]*b[i] (i 从 0到 n - 1)。测试你的代码。
思路:
由题可知,本函数计算的是两个数组的内积。内积一般是数字,如整数,浮点数。函数返回值应该设置为与数组元素相同类型。
代码:
1 #include <iostream> 2 using namespace std; 3 4 template <typename T> 5 T inner_product(const T* a, const T* b, int array_size) { 6 T result = 0; 7 for (int i = 0; i < array_size; ++i) { 8 result += (a[i] * b[i]); 9 } 10 11 return result; 12 } 13 14 int main() { 15 int a[5] { 0, 1, 2, 3, 4 }; 16 int b[5] { 5, 4, 3, 2, 1 }; 17 int result = inner_product(a, b, 5); 18 cout << "Inner product : " << result << endl; 19 20 return 0; 21 }
代码中有几处需要说明:
第一,将形参声明为 const T*,因为函数不应该修改数组元素。
第二,函数内局部变量 result 初始化为 0,因为数组元素为数字,可以这样初始化。
以上是关于9. 计算内积函数的主要内容,如果未能解决你的问题,请参考以下文章