发布时间:2026/8/16 9:26:32
【C++】拷贝构造函数、赋值重载函数、深拷贝及浅拷贝 模拟实现顺序栈和环形队列的问题及理解 拷贝构造函数用已有对象初始化新对象。Person p2(p1) Person p2 p1赋值运算符将已有对象赋值给另一个已存在的对象 p1p2浅拷贝只复制指针值共享内存 默认的拷贝/赋值行为深拷贝复制指针指向的内容独立内存 需要自定义实现总结只要类中有动态分配的内存new就必须实现·拷贝构造函数深拷贝 创建新的对象·赋值运算符重载深拷贝 给已存在的对象赋值拷贝构造vs赋值重载// 拷贝构造创建新对象SeqStack s1;SeqStack s2 s1;// ←拷贝构造s2是新对象SeqStack s3(s1);// ←拷贝构造s3是新对象// 赋值重载已存在的对象赋值SeqStack s1;SeqStack s2;// s2已经存在s2 s1;// ←赋值重载s2已存在// 关键区别// 拷贝构造不需要释放旧资源新对象没有// 赋值重载需要释放旧资源对象已有资源·析构函数释放资源浅拷贝Egclass Person { public: Person(const char* name, int age) { this-name new char[strlen(name) 1]; strcpy(this-name, name); this-age age; } ~Person() { delete[] this-name; // 释放内存 } private: char* name; int age; }; int main() { Person per1(赵云, 23); Person per2(per1); // 使用默认拷贝构造函数浅拷贝 // 问题per1和per2的name指针指向同一块内存 // 析构时同一块内存被释放两次 → 程序崩溃 return 0; }深拷贝Egclass Person { public: // 构造函数 Person(const char* name, int age, char sex) { this-name new char[strlen(name) 1]; strcpy(this-name, name); this-age age; this-sex sex; } // 拷贝构造函数深拷贝 // 参数必须是引用否则会无限递归 Person(const Person rhs) { cout Person(const Person rhs) endl; // 重新开辟独立的内存空间 this-name new char[strlen(rhs.name) 1]; strcpy(this-name, rhs.name); this-age rhs.age; this-sex rhs.sex; } // 析构函数 ~Person() { delete[] this-name; this-name nullptr; } private: char* name; int age; char sex; }; int main() { Person per1(赵云, 23, M); Person per2(per1); // 调用拷贝构造函数深拷贝 // per1和per2的name指向不同的内存互不影响 return 0; }模拟实现顺序栈和环形队列遇到的问题总结模拟实现堆mTop始终指向栈顶元素的下一个元素因此出栈直接mTop--就是指向栈顶元素假装此位置为空没有元素伪删。判满bool full() { return mTop mSize; } // 元素个数 容量因为mTop刚好指向下一个元素所以数值上可以和mSize相比。3.模拟实现和环形队列front_指向队头元素第一个有效元素rear_指向队尾的下一个位置下一个要放的位置4.环形移动// 入队rear_ 环形后移 void push(int data) { queue_[rear_] data; rear_ (rear_ 1) % size_; // 取模实现环形 } // 出队front_ 环形后移 void pop() { front_ (front_ 1) % size_; // 取模实现环形 }5.判满(rear_ 1) % size_ front_浪费一个空间的原因是区分空和满。6.扩容时为什么 rear_ count因为扩容前队列的环形的 rear可能在front前顺序不对而扩容之后赋值过程中count的增加suoyinindex从front开始此时队列变成顺序的因此rear刚好在count的位置。

相关新闻

2026/8/16 9:26:32

开源PLC编程完整指南:用OpenPLC Editor免费搞定PLC开发与调试

开源PLC编程完整指南:用OpenPLC Editor免费搞定PLC开发与调试 【免费下载链接】OpenPLC_Editor 项目地址: https://gitcode.com/gh_mirrors/ope/OpenPLC_Editor 如果你正在寻找一套免费又专业的开源PLC编程工具,OpenPLC Editor值得认真了解。这款…

2026/8/16 9:26:32

MySQL SQL 风险拦截:AST 规则、观察模式和可回退阻断

MySQL SQL 风险拦截:AST 规则、观察模式和可回退阻断 SQL 风险控制是缩小影响面,不是用 AST 规则消灭慢 SQL。确定性高的无条件更新可以阻断,其余风险先观察、限流并结合执行计划与统计信息判断。 先在网关做可解释的预检 对无条件 UPDATE、D…

2026/8/16 9:26:32

AI早报技术架构解析:从信息聚合到智能知识伙伴的演进

1. 从“AI早报”看信息获取范式的变迁 每天早上,当大多数人还在为通勤路上的拥堵或第一杯咖啡的提神效果而烦恼时,一个由算法驱动的信息世界已经悄然完成了新一轮的迭代与分发。这就是“AI早报”——一个看似简单的概念,背后却折射出我们获取…

2026/8/16 11:46:40

5分钟搞定抖音评论采集:三个步骤把视频评论一键导出Excel

5分钟搞定抖音评论采集:三个步骤把视频评论一键导出Excel 【免费下载链接】TikTokCommentScraper 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokCommentScraper 我敢打赌你也遇到过这种场面:视频底下两千条评论,你想看看大家到…

2026/8/16 11:46:40

GEO 診斷之後誰來做?品牌實體、內容與信任訊號的代客優化流程

GEO 診斷之後誰來做?品牌實體、內容與信任訊號的代客優化流程 品牌完成 AI 能見度診斷後,常常得到一份問題清單:資料不一致、內容難以引用、同名風險高、外部來源不足、測試中沒有被提及。真正困難的部分不是看懂分數,而是誰來把這…

2026/8/16 11:46:40

深入解析JavaScript事件循环:从宏任务微任务到异步执行顺序

1. 项目概述:从一道经典面试题说起“请说出下面这段代码的输出顺序。” 如果你是一名前端开发者,或者正在学习 JavaScript,这句话后面跟着的代码,十有八九会涉及Promise和setTimeout。一个典型的例子是:console.log(1)…

2026/8/16 11:46:40

电赛智能小车设计:从硬件选型到PID控制与系统调试全攻略

1. 先搞清楚电赛控制小车到底在比什么电赛控制小车,核心比的不是谁的小车跑得快,而是在规定时间内,用有限的硬件资源,稳定、精确地完成一套复杂的任务流程。很多人一上来就埋头调PID、写算法,结果比赛时连小车最基本的…

2026/8/16 11:41:40

CLI的AI时代复兴:从命令行工具到AI-Agent基础设施的演进

1. CLI的“文艺复兴”:从幕后到台前的必然逻辑 最近两年,一个有趣的现象在技术圈蔓延开来:无论是国外的Google、Microsoft、Meta,还是国内的阿里、腾讯、字节跳动,几乎所有你能叫得上名字的“大厂”,都在不…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/16 0:00:35

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:36

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/15 9:46:39

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/15 4:56:16

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/15 9:46:30

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…