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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM