c++
文章平均质量分 84
ptu小鹏
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
c++继承
继承是C++面向对象三大特性之一,实现代码复用和层次结构。派生类通过公有/保护/私有继承方式获取基类成员,访问权限由继承方式和成员限定符共同决定(如公有继承保留基类public成员权限)。派生类与基类间存在赋值转换规则:向上转换(派生→基)允许隐式进行但可能发生对象切片;向下转换(基→派生)需强制类型转换且存在风险。继承体系中作用域独立,同名成员会隐藏基类版本,可通过作用域运算符访问。派生类默认成员函数(构造/析构等)会自动调用基类对应版本,优先处理基类部分再处理派生类成员。原创 2025-06-08 03:24:05 · 864 阅读 · 0 评论 -
priority_queue的介绍和使用
本文介绍了C++中的优先级队列priority_queue,它是一个基于堆实现的容器适配器。文章首先展示了priority_queue的基本使用示例,演示了默认大顶堆的行为。接着详细解析了其模板参数:数据类型、底层容器(默认为vector)和比较器(默认为less构建大顶堆)。通过示例代码展示了如何使用greater构建小顶堆。随后给出了一个自定义priority_queue的实现,包括核心的adjustup和adjustdown堆调整算法,以及push、pop等接口的实现原理。该实现支持模板化配置底层容器原创 2025-05-26 16:53:00 · 821 阅读 · 0 评论 -
list重点接口及模拟实现
C++中的list是一个基于双向链表实现的容器,支持高效的插入和删除操作,尤其在任意位置的操作上优于vector。list通过改变节点指向来实现插入和删除,时间复杂度为常数。主要接口包括构造、容量检查、元素访问和修改操作等。list的迭代器在删除操作中会失效,但通过返回值更新迭代器可以避免问题。list的模拟实现代码可通过提供的Gitee仓库访问和探讨。原创 2025-05-17 22:26:14 · 1023 阅读 · 0 评论 -
vector的模拟实现及底层原理
本文介绍了如何通过C++模板手写一个轻量但功能完善的vector容器,深入解析了其底层原理。文章从迭代器定义、成员变量设计、构造与析构、存储管理、核心操作等方面详细讲解了vector的实现过程。通过手写vector,读者可以更好地理解STL容器的数据结构、内存模型与算法设计,掌握动态内存管理、扩容算法、copy-swap技术等关键知识点。文章还提供了测试示例和代码源文件地址,适合希望深入理解STL容器原理的读者。原创 2025-05-14 01:14:34 · 374 阅读 · 0 评论 -
C++ 自定义 string 类模拟实现
我们定义一个名为的类,内部通过char* _str持有字符串数据,并自己管理_capacity和_sizechar* _str;// 字符串数据// 已用长度// 总存储容量提供基础功能:构造/拷贝/赋值/析构,字符输入输出,接合操作,定位查找,字符串插入和删除等。这个类完整采用原生编程方式,本身展示了 C++ 基本内存管理、负责编程和类操作算符量的全过程实现。它是学习 C++ 基础的一个非常好的实战练手项目。原创 2025-05-06 00:59:35 · 386 阅读 · 0 评论 -
C/C++内存管理
如果需要给出相关分区图视化或其他扩展,我可以继续添加简洁图视化图。原创 2025-04-26 12:17:39 · 764 阅读 · 0 评论 -
类和对象(下)
这个时候我们就得自己实现:1. operator<<重载函数不能写在类中,因为写在类中会有this指针,使得调用。原创 2025-04-26 11:52:02 · 324 阅读 · 0 评论 -
类和对象(中)
如果一个类中一个默认成员函数也没有那这个类我们叫作空类。但是如果一个类中每有默认成员函数的话,会怎样呢?答案是编译器会帮我们自动实现类。原创 2025-04-23 19:26:11 · 1151 阅读 · 0 评论 -
C++类和对象(上)
C和C++最大的不同就是在C语言中,C语言注重的是编程的顺序,就比如我们洗衣服,在C语言里面我们得按照加水->加洗衣液->侵泡会·····。如下图所示,注重的是洗衣服的过程。而,注重的是在洗衣服这个过程中参与的对象在这里更像是我们观察这个过程都有谁参与。还是洗衣服,现在是机洗,这个时候我们注重的就是洗衣服这个过程中有谁,。这。原创 2025-04-18 09:25:36 · 1066 阅读 · 0 评论 -
C++入门
定义命名空间会用到namespace关键字、namespace jp //jp是命名空间的名字//命名空间可以定义变量,函数,类型int i;return sum;int rent;//命名空间可以嵌套int c;······//还有就是同一个工程可以拥有相同的命名空间名字//编译器最后会合并为一个命名空间命名空间其实是一个域(命名空间域)概念和在C语言里面的全局域和局部域相同,通俗一点其实就是使用范围。原创 2025-04-09 22:01:48 · 1090 阅读 · 0 评论
分享