题目:
编写一个模板函数 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 引用类型,因为函数不应该修改其值。
原文地址:https://www.cnblogs.com/Hello-Nolan/p/12305024.html
时间: 2024-10-24 18:23:26