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 引用类型,因为函数不应该修改其值。

原文地址:https://www.cnblogs.com/Hello-Nolan/p/12305024.html

时间: 2024-10-24 18:23:26

10. 改变数组元素值的函数的相关文章

Perl 改变数组元素值的方法

用for循环对每个数组元素重新赋值: #!/usr/bin/perl @array = (1..30); print "@array\n"; for($i=0; $i<=$#array; $i++){ $array[$i] = $array[$i] + 10; } print "@array\n"; 用while循环对每个数组元素重新赋值: #!/usr/bin/perl @array = (1..30); $count = 1; print @array;

38 py改变函数参数的值关键字参数和参数默认值函数中可变参数将序列中的元素值作为函数对应的参数值传

第五课:改变函数参数的值 一个python函数可以有任意多个参数,在一个函数的外部来定义变量,然后把变量作为参数传入到函数内,并且在函数的内部来修改函数的参数值,函数结束之后,这些变量的值在如何变化呢? 给函数传递值有2种:1种是值传递,1种是引用传递 # 改变函数参数的值 # 值传递(数值.字符串.布尔 这些都是值传递) 在函数的内部修改变量值,不改变原参数定义的参数值,解释为: 这个在函数中不会改变原来定义(函数外部)的值 这是因为函数里面会有一个占的概念,外边的变量的值会复制给 占 里面,

c语言:对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出。

对10个数组元素依次赋值为0,1,2,3,4,5,6,7,8,9,要求按逆序输出. 解:程序: #include<stdio.h> int main() { int i, a[10]; for (i = 0; i <= 9; i++) { a[i] = i; } for (i = 9; i >= 0; i--) { printf("%3d", a[i]); } printf("\n"); return 0; } 结果: 9  8  7  6 

通过指针在函数里改变数组的值

关键:将数组的地址送到函数中:其中数组名可以作为函数的首地址. #include<stdio.h>int sort(int *p,int n){ int i,j,ret=0,temp;    if(p==NULL) {printf("error:sort(int *p)%d",ret); return ret; }    for(i=0;i<n-1;i++) {   for(j=i+1;j<n;j++)  if(*(p+i)>*(p+j))  {  tem

为什么改了JS数组中的一个元素的值,其他数组元素值都跟着变了

原因: 数组是引用类型,数组变量存储在栈,元素数据存储在堆中,将数组赋值不同的对象,所以的赋值对象都指向堆同一个数据,所以改变其中一个数组中的元素,别的数组元素也会改变. 解决方案: 原理就是先把数组转换成字符串再转换成对象 ,这样会新分配一块内存,就不会指向同一个堆中的数据.  例子1: var tmp = JSON.parse(JSON.stringify(array)); 原文地址:https://www.cnblogs.com/KevinTong/p/11414770.html

php中用foreach改变数组的值的问题

翻到PHP文档的foreach那页这样写道: “foreach 语法结构提供了遍历数组的简单方式.foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息.有两种语法: foreach (array_expression as $value) statement foreach (array_expression as $key => $value) statement 第一种格式遍历给定的 array_expression 数组.每次循环中,当

编写一个void sort(int*x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件

#include<stdio.h> void sort(int*x,int n) { int i,j,k,t; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) if(x[j]>x[k]) k=j; if(k!=i) { t=x[i]; x[i]=x[k]; x[k]=t; } } } void main() { FILE*fp; int *p,i,a[10]; fp=fopen("array.out","

取二维数组中,某个数组元素值的和

1.粗暴直接的是遍历相加,当然这样比较lower 2.利用系统函数进行计算  array_sum(array_column($attr, '字段')); 原文地址:https://www.cnblogs.com/sicada/p/9534768.html

C++类的数组元素查找最大值问题

找出一个整型数组中的元素的最大值. 1 /*找出一个整型数组中的元素的最大值.*/ 2 3 #include <iostream> 4 using namespace std; 5 6 class ArrayMax //创建一个类 7 { 8 public : 9 void set_value(); 10 void max_value(); 11 void show_value(); 12 13 private: 14 int array[10]; 15 int max; 16 }; 17 1