网站 多少篇文章才能上线深圳小程序开发公司
2026/4/10 18:48:13 网站建设 项目流程
网站 多少篇文章才能上线,深圳小程序开发公司,网站建设实例下载,网页设计什么软件特性浅拷贝 (Shallow Copy)深拷贝 (Deep Copy)操作对象仅复制指针变量本身#xff08;64位系统通常 8 字节#xff09;。复制指针指向的整块内存数据。内存地址两个指针指向同一个地址 (0x1234)。两个指针指向不同的地址 (A指0x1234, B指0x5678)。数据独立性高度耦合。修改 A…特性浅拷贝 (Shallow Copy)深拷贝 (Deep Copy)操作对象仅复制指针变量本身64位系统通常 8 字节。复制指针指向的整块内存数据。内存地址两个指针指向同一个地址 (0x1234)。两个指针指向不同的地址 (A指0x1234, B指0x5678)。数据独立性高度耦合。修改 A 的数据B 也会变。完全独立。修改 A 的数据B 不受影响。速度极快(仅赋值一个整数)。较慢(涉及 malloc/new 和内存搬运)。主要风险双重释放 (Double Free)如果 A 析构删了内存B 就成了悬空指针B 再析构就会崩。内存消耗大如果对象很大频繁深拷贝会撑爆内存或拖慢 CPU。A. 普通数据类型对于普通数据类型基础类型如int,double,bool,char以及不包含指针的简单struct/class深拷贝和浅拷贝没有任何区别。B. 标准容器 (std::vector,std::string)std::vectorint b a;这是深拷贝。b会在堆上申请新空间把a的元素都拷过去。std::vectorNode* b a;容器本身是新的深拷贝但容器里的元素是指针浅拷贝。C. OpenCV 应用 (cv::Mat)cv::Mat A cv::imread(img.jpg); cv::Mat B A; // 【浅拷贝】B 和 A 共享同一块图像数据。修改 B 的像素A 也会变。 // OpenCV 内部使用了“引用计数”机制安全不会 Double Free。 cv::Mat C A.clone(); // 【深拷贝】C 拥有独立的图像数据。修改 CA 不变。D. 设计原则全局共享资源必须浅拷贝原因为了保证一致性。实现使用指针或智能指针 (std::shared_ptr)。线程私有数据必须深拷贝原因为了保证线程安全和数据隔离。实现显式调用.clone()或拷贝构造。函数传参尽量用引用 (const )原则既不要深拷贝慢也不要浅拷贝为了不增加引用计数开销直接传引用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询