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,因为数组元素为数字,可以这样初始化。

posted @ 2020-02-13 16:22  Hello_Nolan  阅读(2061)  评论(0编辑  收藏  举报