首页 > 其他分享 >深拷贝和浅拷贝

深拷贝和浅拷贝

时间:2024-03-19 10:57:46浏览次数:15  
标签:容器 针对 对象 实物 可变 拷贝

一、概念

1、浅拷贝拷贝父对象,引用子对象

浅拷贝只复制子对象的内存地址,然后把内存地址指向的值返回

2、深拷贝拷贝父对象和子对象

深拷贝复制了父对象和子对象,拷贝的是内容

二、代码:

1、针对不可变容器,深浅拷贝效果相同,浅拷贝效果

针对可变容器(有嵌套)

 二、深拷贝针对可变容器(有嵌套)

 三、总结

针对可变容器而言,原容器可以比喻成一个实物,浅拷贝就是这个实物的影子,实物去到哪里,影子就去到哪里,实物改变,影子也会跟着变化(如影随形),而深拷贝就是实物的另一个拷贝实体,原来的实物改变与否,去到哪里,都和拷贝出来的实体无关。

 

标签:容器,针对,对象,实物,可变,拷贝
From: https://www.cnblogs.com/chl666/p/18082237

相关文章

  • Linux开发:通过sendfile高效的拷贝文件数据
    如果想要将一个文件的内容拷贝到另一个文件中,常规的做法是读取源文件,然后再把内容写入到目的文件中:#include<fstream>#include<iostream>#include<string>#include<vector>usingnamespacestd;vector<string>readFile(conststring&filename){vector<stri......
  • 图解I/O中的零拷贝技术
    什么是零拷贝?        零拷贝是一种计算机系统中的I/O优化技术,它的核心思想是在数据传输过程中尽可能地减少或完全避免CPU将数据从一个存储区域复制到另一个存储区域的操作,从而减少了上下文切换和CPU拷贝时间,提高了系统的性能和效率。在Java领域,诸如Netty、Ka......
  • SSH免密登录与SCP远程拷贝
    SSH免密登录概述在集群环境中,经常需要在不同机器之间进行跳转,开启免密登录可以提高效率,避免频繁输入密码验证。此外,免密登录的环境也可以满足通过脚本远程登录各个机器实现各种自动操作,如:一键启动、一键安装等。免密登录的实现是基于SSH协议实现的。原理两台机器之间实......
  • c++:类和对象中:拷贝构造和赋值运算符重载详解
    c++:类和对象构造函数和析构函数详解`文章目录c++:类和对象构造函数和析构函数详解前言一、拷贝构造怎么写拷贝构造1.拷贝构造也是构造函数的一种,构造函数没有值.所以拷贝构造也没有返回值**2.拷贝构造只有一个形参,正常这个形参是自定义类型对象的引用.3.如果我们......
  • DMA和零拷贝
    一、DMA(直接内存访问)1.作用:解决大量数据转移过度消耗CPU资源的问题2.实现原理:在进行I/O设备和内存的数据传输时,数据搬运到内存的工作全部交给DMA控制器,而CPU不再参加与数据搬运相关的事情。比如在文件传输:原本CPU负责将磁盘控制器缓冲区的内容搬运到内核缓冲区(PageCache,磁盘高......
  • js 实现深拷贝/深复制
    //深拷贝constdeepClone=(obj)=>{vartarget={};for(varkeyinobj){if(Object.prototype.hasOwnProperty.call(obj,key)){if(typeofobj[key]==='object'){target[key]=deepClone(obj[key])......
  • Java登陆第三十三天——ES6(二)浅拷贝、深拷贝;
    对象的拷贝,就是复制一个已有对象的方式。JS中对象的拷贝<script>console.log("1.浅拷贝,对象仅拷贝引用地址,基本类型拷贝的是值");letdoor1=["木门"];letdoor2=door1;//浅拷贝仅仅是拷贝引用地址door2[0]="铁门";console.log(door1);//['铁门']......
  • 深拷贝和浅拷贝
    前言浅拷贝(shallowcopy)和深拷贝(deepcopy)是在编程中经常遇到的概念,尤其在处理数据结构时很重要。它们是针对对象(object)或数据结构(datastructure)进行复制操作时的两种不同方式。浅拷贝和深拷贝是在编程中常见的两种拷贝对象的方式,它们在拷贝对象时的行为和效果有所不同。浅......
  • 14_深拷贝
    深拷贝深拷贝是一种克隆类型,其中原始对象的所有字段和属性都会被复制到克隆中,包括嵌套对象。这意味着对克隆的任何更改都不会影响原始对象。ICloneable接口ICloneable接口允许.NET对象创建自身的一个副本,称为克隆。克隆与原始对象具有相同的值,但它们是独立的对象。实现IC......
  • 【个人前端笔记】手写对象深拷贝
    一、对象深拷贝简单的方法:JSON序列化方法通过将对象转换成JSON格式并转换回对象,实现深拷贝leta1={a:"hello",b:"world",c:[1,2,3],d:{a:1,b:2}}leta2=JSON.parse(JSON.stringify(a1))console.log(a2);JSON序列化拷贝的缺点a.不支持......