C++进阶
文章平均质量分 88
在掌握 C++ 基础后,本专栏将带你深入学习 C++ 高级特性与工程应用。主要内容包括 面向对象编程(类、继承、多态)、模板与泛型编程、STL 标准库、内存管理、异常处理、智能指针、现代 C++ 新特性(C++11) 等。通过系统的讲解与实战案例,你将从写“能跑的代码”迈向写“高效
小糖学代码
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C++进阶:6_C++11
C++11 核心特性摘要 C++11 是 C++ 语言的重要更新,引入了多项关键特性: 列表初始化:统一初始化方式,支持一切对象用{}初始化,包括内置类型和自定义类型。新增了std::initializer_list类,使容器支持任意多个值的初始化。 右值引用:引入&&语法,区分左值(可寻址)和右值(临时对象)。右值引用主要用于: 延长临时对象生命周期 实现移动语义 完美转发 配合std::move实现资源转移 移动语义:通过右值引用减少不必要的拷贝,提升性能。标准容器和智能指针都实现了移动原创 2025-09-25 19:30:51 · 973 阅读 · 0 评论 -
STL的list模拟实现(带移动构造和emplace版本)
该文件实现了双向带头循环链表模板类list,主要包含以下内容: 定义了链表节点结构体ListNode,包含前驱指针、后继指针和数据成员,支持多种构造方式。 实现了正向迭代器ListIterator,通过模板参数区分const和非const版本,提供了基本的迭代器操作(解引用、指针访问、前后移动等)。 使用迭代器适配器实现了反向迭代器功能(基于ReverseIterator.h)。 list类提供了完整的迭代器支持: 正向迭代器begin()/end() const正向迭代器 反向迭代器rbegin()/re原创 2025-09-25 17:07:59 · 275 阅读 · 0 评论 -
C++进阶:7_异常
【代码】C++进阶:7_异常。原创 2025-09-23 06:00:00 · 809 阅读 · 0 评论 -
C++进阶:5_哈希
unordered_map在线文档说明unordered_map是存储<key, value>键值对的关联式容器,其允许通过keys快速的索引到与其对应的value。在unordered_map中,键值通常用于惟一地标识元素,而映射值是一个对象,其内容与此键关联。键和映射值的类型可能不同。在内部,unordered_map没有对<kye, value>按照任何特定的顺序排序, 为了能在常数范围内找到key所对应的value,unordered_map将相同哈希值的键值对放在相同的桶中。原创 2025-05-08 20:34:29 · 949 阅读 · 0 评论 -
C++进阶:4_map和set
(1).暴力查找(2).排序+二分查找 -> 底层是数组,插入和删除代价大O(N)(3).搜索树 -> 二叉搜索树(O(N)->平衡树(AVL树、红黑树)[内存]0(logN)->多叉平衡树(B树系列)[硬盘]内存磁盘(4).哈希(5).后续还有以表和字典树在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面存储的是元素本身。那什么是关联式容器?它与序列式容器有原创 2025-05-04 22:07:46 · 979 阅读 · 0 评论 -
C++进阶:3_二叉树进阶
因此本节借二叉树搜索树,对二叉树部分进行收尾总结。原创 2024-09-03 14:12:38 · 1476 阅读 · 0 评论 -
C++进阶:2_多态
多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。比如Student继承了Person。Person对象买票全价,Student对象买票半价。那么在继承中要构成多态还有两个条件必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写**在虚函数的后面写上 =0 ,则这个函数为纯虚函数。包含纯虚函数的类叫做抽象类(也叫接口类),抽象类不能实例化出对象。**派生类继承后也不能实例化出对象,只有重写纯虚函数,派生类才能实例化出对象。原创 2024-08-31 15:57:32 · 1327 阅读 · 0 评论 -
C++进阶:1_C++中的继承
下面我们看到Person是父类,也称作基类。Student是子类,也称作派生类。很多人说C++语法复杂,其实多继承就是一个体现。有了多继承,就存在菱形继承,有了菱形继承就有菱形虚拟继承,底层实现就很复杂。所以一般不建议设计出多继承,一定不要设计出菱形继承。否则在复杂度及性能上都有问题。多继承可以认为是C++的缺陷之一,很多后来的OO语言都没有多继承,如Java。继承和组合(组合和继承都是一种复用)这里讨论共有继承public继承是一种is-a的关系。也就是说每个派生类对象都是一个基类对象。原创 2024-08-07 15:57:37 · 881 阅读 · 0 评论
分享