首页 > 其他分享 >使用三种方式通过数组实现拷贝复制

使用三种方式通过数组实现拷贝复制

时间:2024-06-22 17:58:32浏览次数:14  
标签:target int double len source 复制 数组 拷贝 sizeof

三种通过数组的方式进行数组的拷贝,其本质都是通过地址传参,来实现数组的拷贝。

1、通过数组访问

这种访问数组的方式是最常见的

void copy1(double target[], double source[], int len){
    for (int i = 0; i < len; ++i) {
        target[i] = source[i];
    }
}


int main(){

    double source[5] = {1.1, 1.2, 1.3, 1.4, 1.5};
    double target[5];

    int len = sizeof(source) / sizeof(source[0]);

    copy1(target, source, len);
    cout << "target:";
    for (int i = 0; i < len; ++i) {
        cout << target[i] << " ";
    }
    cout << endl;
}

2、使用指针访问

void copy2(double *target, double *source, int len){
    for (int i = 0; i < len; ++i) {
        *target++ = *(source + i);
    }
}

int main(){

    double source[5] = {1.1, 1.2, 1.3, 1.4, 1.5};
    double target[5];

    int len = sizeof(source) / sizeof (source[0]);

    copy2(target, source, len);
    cout << "target:";
    for (int i = 0; i < len; ++i) {
        cout << target[i] << " ";
    }
    cout << endl;
}

3、通过两个指针实现

 void copy3(double *target, double *sourceStart, double *sourceEnd){
     for (; sourceStart < sourceEnd; sourceStart++) {
         *target++ = *sourceStart;
     }
}

int main(){

    double source[5] = {1.1, 1.2, 1.3, 1.4, 1.5};
    double target[5];

    int len = sizeof(source) / sizeof (source[0]);

    copy3(target3, source, source + 5);
    cout << "target:";
    for (int i = 0; i < len; ++i) {
        cout << target[i] << " ";
    }
    cout << endl;
}

标签:target,int,double,len,source,复制,数组,拷贝,sizeof
From: https://blog.csdn.net/weixin_46089415/article/details/139885836

相关文章

  • NumPy数组的合并
    NumPy数组的合并方法说明concatenate()沿现有维度合并hstack()沿现有维度水平合并vstack()沿现有维度垂直合并stack()沿新维度合并1.concatenate()np.concatenate((arr1,arr2),axis=n)importnumpyasnparr1=np.array([[1,2],[3,4]])arr2......
  • 在Linux中,mysql 如何减少主从复制延迟?
    主从复制延迟是MySQL数据库中一个常见但关键的问题,它直接影响到数据的实时性和系统的响应速度。在企业生产环境中,解决此问题能显著提高数据库的性能和稳定性。下面将详细探讨如何减少主从复制延迟:查看同步延迟状态使用SHOWSLAVESTATUS命令:该命令可提供关于从库复制状态的详......
  • 力扣每日一题 6/21 数组
    博客主页:誓则盟约系列专栏:IT竞赛专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞......
  • 随机链表的复制 && 排序链表
    随机链表的复制题目.-力扣(LeetCode)思路:思路:       ①一个结点一个节点去拷贝,当拷贝了第一个节点的时候,把原节点与拷贝节点连接起来,直接到所有的节点拷贝完毕,这样做的目的是为下一步处理random指针做准备      ②处理random       ③处理......
  • blender4.1添加骨骼复制位置和复制旋转约束代码(Armature-Biped_Root)
    添加旋转旋转约束importbpy#定义骨架中骨骼的映射关系bone_mapping={"mixamorig:Hips":"Pelvis","mixamorig:LeftUpLeg":"Left_Thigh","mixamorig:LeftLeg":"Left_Calf","mixamorig:LeftFoot&q......
  • java object多大 java对象内存模型 数组有多长(九)多线程2
    背景:多线程与单线程byte模式有误差,而且多线程每次跑出来不一样 发现:set多线程单线程没有误差,意味着除了byte那一块代码,其他的代码是可被信任的单线程5000以下byte没有hash冲突时==单线程set==apache==理论值;基本证明了这套cas在单线程下没问题;hash冲突是导致单线程set和单线......
  • 一维静态数组
    数组,拆分就是数的组合,里面可能会出现重复的数字;同时数组分为一维数组和二维数组。我们可以把一维数组理解为一条线,把二维数组理解成一个面。当然,三维数组,甚至四维数组,只要你有能力,都可以在c++,同样有数组。这次我们讲一维静态数组语法定义Typarr[n];//定义一个类型为Ty......
  • 【Shell脚本】 Shell索引数组变量:定义-获取-拼接-删除、alisa内置命令、默认输出换行
    目录 Shell索引数组变量:定义-获取-拼接-删除 数组的获取 数组的拼接数组的删除 alisa内置命令默认输出换行语法 read内置命令 declare内置命令获取指定key的值使用declare定义一普通数组,并获取打印元素数据的值 expr命令 算术运算符 布尔运算符 逻辑......
  • MySQL之复制(九)
    复制复制管理和维护确定主备是否一致在理想情况下,备库和主库的数据应该是完全一样的。但事实上备库可能发生错误并导致数据不一致。即使没有明显的错误,备库同样可能因为MySQL自身的特性导致数据不一致,例如MySQL的Bug、网络中断、服务器崩溃,非正常关闭或者其他一些错误。(......
  • 最详细的JS学习笔记(连载)第二章、数组方法(删除)
    数组删除(1)数组.pop() 移除最后一个元素,并返回移除该元素值  参数:无        返回值:被删除的那个元素           原有的数组改变letary=[10,20,30]varres=ary.pop();console.log(res,ary)   //res=>30  ary=>[10,20]基于原......