deep-copy相关内容

“可复制构造"C++ stl 容器元素的要求

关于C++ stl容器元素的要求,标准规定:元素类型应为CopyConstructible,并有CopyConstructible要求表.同样通过各种书籍(Josuttis 等),生成的副本应该与源“等效". 我想我需要澄清一下.究竟什么是“等同于"?我也对“CopyConstructible"和“深/浅拷贝"之间的关系有点困惑.一般来说,拷贝构造函数要么是浅拷贝,要么是深拷贝.那么哪个适用 ..
发布时间:2022-01-24 20:48:49 C/C++开发

繁殖种群.我应该“深拷贝"每个人吗?

我模拟了 Julia 中不断变化的人口.在我的代码中的某处,我随机抽样(样本由个体的 fitnesses 加权)个体以形成下一代.因为可以对同一个人进行多次抽样(带替换抽样),所以我必须复制这些个人,而不仅仅是创建一个指向相同数据的新指针.以下是目前代码的样子: ##### 复制######新人口 = 数组(个人,nb_individuals_in_population)健身= WeightVe ..
发布时间:2022-01-23 19:52:52 其他开发

复制构造函数/操作符/函数是否需要明确它实现的复制变体?

昨天我问了 一个关于在 C# 中复制对象的问题,大多数答案都集中在深拷贝和浅拷贝之间的区别,以及应该明确给定拷贝构造函数(或运算符或函数)实现这两种拷贝变体中的哪一种.我觉得这很奇怪. 我用 C++ 编写了很多软件,这是一种严重依赖复制的语言,而且我从不需要多个复制变体.我曾经使用过的唯一一种复制操作是我称之为“足够深的复制"的操作.它执行以下操作: 如果对象拥有成员变量的所有权(参见 ..
发布时间:2022-01-20 18:21:43 其他开发

如何复制“字典"在斯威夫特?

如何在 Swift 中复制“字典"? 即获取另一个具有相同键/值但内存地址不同的对象. 另外,如何在 Swift 中复制一个对象? 谢谢, 解决方案 一个'Dictionary'在swift中其实是一个Struct,是一个值类型.所以复制它很简单: 让 myDictionary = ...让 copyOfMyDictionary = myDictionary 复制一个 ..
发布时间:2022-01-20 18:16:25 移动开发

标准向量 C++——深拷贝或浅拷贝

我想知道是否复制向量我正在复制向量及其值(而这不适用于数组,并且深度复制需要循环或 memcpy). 你能提示解释吗? 问候 解决方案 每次复制向量时,您都在进行深层复制.但是,如果您的向量是指针向量,则您将获得指针的副本,而不是指向的值 例如: std::vectorF;std::vectorcp = f;//深拷贝.所有 Foo 已复制std::vecto ..
发布时间:2022-01-20 18:11:34 C/C++开发

嵌套字典 copy() 还是 deepcopy()?

我尝试在代码的开头存储一个字典模板,大多数函数都会使用该模板: 字典:keys = 客户端名称,values = Dictionary2 字典 2:键 = 用户名,值 = 无 我填满了我们所有的客户和他们的用户.然后代码的每一部分都可以复制这个字典并产生它自己的输出.目标是每个输出都将具有相同的“基本"字典结构,就像可以修改 None 的模板一样. 对于使用此词典的每个进程,我 ..
发布时间:2022-01-20 18:06:31 Python

如何在 Python 中对函数进行深度复制?

我想在 Python 中制作一个函数的深拷贝.copy 模块没有帮助,根据 documentation,其中说: 此模块不会复制模块、方法、堆栈跟踪、堆栈帧、文件等类型,套接字、窗口、数组或任何类似类型.它会“复制"函数和类(浅和深度),通过返回原始对象不变;这与方式兼容这些由 pickle 模块处理. 我的目标是拥有两个具有相同实现但具有不同文档字符串的函数. def A():““ ..
发布时间:2022-01-20 17:40:35 Python

切片操作会给我一个深拷贝还是浅拷贝?

官方 Python 文档说在 Python 中使用切片运算符和赋值制作切片列表的浅表副本. 但是当我写代码例如: o = [1, 2, 4, 5]p = o[:] 当我写的时候: id(o)编号(p) 我得到不同的 id,并且附加一个列表不会反映在另一个列表中.是不是在创建深拷贝,还是我哪里出错了? 解决方案 您正在创建一个 浅 副本,因为嵌套值不会被复制,而只是被引用.de ..
发布时间:2022-01-20 17:38:54 Python

如何深拷贝一个列表?

E0_copy = list(E0)之后,我猜E0_copy是E0的深拷贝,因为id(E0) 不等于 id(E0_copy).然后我在循环中修改了E0_copy,为什么后面的E0就不一样了? E0 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]对于范围内的 k (3):E0_copy = 列表(E0)E0_copy[k][k] = 0#print(E0_copy)打印 E ..
发布时间:2022-01-20 17:33:37 Python

python多处理参数:深拷贝?

from multiprocessing import Process# c 是一个容器p = 过程(目标 = f,args = (c,))p.start() 我假设 c 的深拷贝被传递给函数 f 因为浅拷贝在新进程的情况下没有意义(新进程不可以访问来自调用进程的数据). 但是这个深拷贝是如何定义的呢?copy 中有一整套 注释集.deepcopy() 文档,所有这些注释是否也适用于这里? ..
发布时间:2022-01-12 12:57:04 Python

Java HashMap - 深拷贝

我只是想找出如何制作 HashMap 的深层副本的最佳解决方案.此地图中没有实现 Cloneable 的对象.我想找到比序列化和反序列化更好的解决方案. 解决方案 看看 Deep Cloning,在 Google Code 上你可以找到一个库.您可以在 https://github.com/kostaskougios/cloning 上阅读它. 它的工作原理很简单.这可以克隆任何对象 ..
发布时间:2022-01-08 13:50:47 Java开发

在java中清除或设置空对象

我最近在研究释放 Java 对象占用的内存.这样做时,我对 Java 中如何复制对象(浅/深)以及如何避免在对象仍在使用时意外清除/无效感到困惑. 考虑以下场景: 将 ArrayList 作为参数传递给方法. 将 ArrayList 传递给线程处理的可运行类. 将 ArrayList 放入 HashMap. 现在在这些情况下,如果我调用 list = null; 或 list ..
发布时间:2022-01-06 23:05:31 Java开发

从 C# 中的位图创建一个全新的位图副本

我需要另一个位图的位图深层副本.现在,大多数解决方案都说类似this,这不是深拷贝.这意味着当我锁定原始位图时,副本也会被锁定,因为克隆是原始位图的浅拷贝.现在以下似乎对我有用,但我不确定这是否适用于所有情况. public static Bitmap GetCopyOf(Bitmap originalImage){矩形 rect = new Rectangle(0, 0, originalIm ..
发布时间:2022-01-06 11:41:45 C#/.NET

R,深拷贝与浅拷贝,通过引用传递

我想了解 R 在将参数传递给函数、创建变量副本等时使用的与内存使用相关的逻辑.它什么时候真正创建变量的副本,而只是传递对该变量的引用?我特别好奇的情况是: f a 是按字面传递的还是对传递的引用? x 参考副本?什么时候不是这种情况? 如果有人能向我解释这一点,我将不胜感激. 解决方案 当它传递变量时,总是通过复制而不是通过引用.但是,有时在实际发生分配之前您不会获得副本 ..
发布时间:2022-01-05 12:13:20 其他开发

在 Silverlight 的扩展方法中使用反射进行深度复制?

所以我试图找到一种通用的扩展方法,它使用反射创建对象的深层副本,这将在 Silverlight 中工作.在 Silverlight 中,使用序列化的深层复制并不是那么好,因为它以部分信任的方式运行,并且 BinaryFormatter 不存在.我也知道反射会比克隆序列化更快. 如果有一种方法可以复制公共、私有和受保护的字段,并且是递归的,这样它就可以复制对象中的对象,并且还能够处理集合、数组 ..
发布时间:2021-12-23 23:44:18 C#/.NET