10. 改变数组元素值的函数

题目:

编写一个模板函数 iota , 使 a[i] += value 。测试你的代码。

思路:

正常思路即可,但是我不懂这个函数名字意义是什么。

注:本题目原书翻译有错,本人已修改正确。否则题目的意义不明。

代码:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 template <typename T>
 5 void iota (T* a, int size, const T& value) {
 6     for (int i = 0; i < size; ++i) {
 7         a[i] += value;
 8     }
 9 }
10 
11 int main() {
12     int a[5] { 0, 1, 2, 3, 4 };
13     iota(a, 5, 2);
14 
15     for (auto x : a) {
16         cout << x << " ";
17     }
18     
19     return 0;
20 }

代码中有几处需要说明:

第一:传入数组不是 const ,因为函数需要修改数组元素。

第二:传入的 value 是 const 引用类型,因为函数不应该修改其值。

猜你喜欢

转载自www.cnblogs.com/Hello-Nolan/p/12305024.html
10.