CodeRoadMap
路线图学习路径文章题库资源社区

浏览

首页路线图学习路径知识库题库文章资源社区我的学习
CodeRoadMap

中文编程学习导航:路线图、讲义与题库,进度可同步。

路线图学习路径文章题库社区

© 2026 CodeRoadMap

津ICP备2026012044号-1|coderoadmap@126.com
返回首页
语言8 周

C++ 那些事

Light-City/CPlusPlusThings(4 万星):从入门到进阶的 C++ 学习之旅——基础核心、C++11 新特性、STL 源码剖析、设计模式、惯用法与实战练习。

内容来源:CPlusPlusThings(光城)

学习进度0/60 · 0%
从第 1 课开始

全部课时

60 节
  1. 01

    const 那些事

    常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。

  2. 02

    static 那些事

    `static` 那些事

  3. 03

    this 那些事

    相信在坐的很多人,都在学Python,对于Python来说有self,类比到C++中就是this指针,那么下面一起来深入分析this指针在类中的使用!

  4. 04

    inline 那些事

    头文件中声明方法

  5. 05

    sizeof 那些事

    首先来个总结,然后下面给出实际例子,实战!

  6. 06

    纯虚函数和抽象类那些事

    C++中的纯虚函数或抽象函数是我们没有实现的虚函数!我们只需声明它! 通过声明中赋值0来声明纯虚函数!

  7. 07

    vptr_vtable 那些事

    为了实现虚函数,C ++使用一种称为虚拟表的特殊形式的后期绑定。该虚拟表是用于解决在动态/后期绑定方式的函数调用函数的查找表。虚拟表有时会使用其他名称,例如“v

  8. 08

    virtual 那些事

    对应的代码:emp.cpphttps://github.com/Light-City/CPlusPlusThings/tree/master/basic_con

  9. 09

    volatile 那些事

    被 volatile 修饰的变量,在对其进行读写操作时,会引发一些可观测的副作用。而这些可观测的副作用,是由程序之外的因素决定的。

  10. 10

    assert 那些事

    断言,是宏,而非函数。

  11. 11

    位域那些事

    “ 位域 “ 或 “ 位段 “Bit field为一种数据结构,可以把数据以位的形式紧凑的储存,并允许程序员对此结构的位进行操作。这种数据结构的一个好处是它可以

  12. 12

    extern 那些事

    在C++中常在头文件见到extern "C"修饰函数,那有什么作用呢? 是用于C++链接在C语言模块中定义的函数。

  13. 13

    struct 那些事

    - 在C中struct只单纯的用作数据的复合类型,也就是说,在结构体声明中只能将数据成员放在里面,而不能将函数放在里面。

  14. 14

    struct 与 class 那些事

    `struct` 与 `class` 那些事

  15. 15

    union 那些事

    `union` 那些事

  16. 16

    用 C 实现 C++ 多态

    C++中的多态:在C++中会维护一张虚函数表,根据赋值兼容规则,我们知道父类的指针或者引用是可以指向子类对象的。

  17. 17

    explicit 那些事

    `explicit` 那些事

  18. 18

    friend 那些事

    友元提供了一种 普通函数或者类成员函数 访问另一个类中的私有或保护成员 的机制。也就是说有两种形式的友元:

  19. 19

    using 那些事

    局部与全局using,具体操作与使用见下面案例:

  20. 20

    :: 那些事

    `::` 那些事

  21. 21

    enum 那些事

    枚举有如下问题:

  22. 22

    decltype 那些事

    decltype的语法是:

  23. 23

    引用与指针那些事

    总论:

  24. 24

    宏那些事

    分为几种:#,##,\

  1. 25

    C++11 新特性

    - Variadic Templateshttps://github.com/Light-City/CPlusPlusThings/tree/master/cp

  1. 26

    C++ STL源码剖析 tr1与std array

    源码剖析版本为gcc4.9.1。

  2. 27

    C++ STL源码剖析之序列式容器deque

    deque是一种双向开口的分段连续线性空间简单理解为:双端队列,可以在头尾端进行元素的插入和删除。

  3. 28

    C++ STL源码剖析之哈希表

    哈希表,是作为unordered_map与unordered_set等的底层容器,自gcc2.9后源码量大增!

  4. 29

    C++ STL源码剖析之实现一个简单的iterator_category

    本节使用上节Traits特性,研究iterator源码,来实现一个简单的iterator_category,同时对iterator的源码结构进行分析。

  5. 30

    C++ STL源码剖析之双向环形链表list

    源码对应的版本为gcc-4.9.1

  6. 31

    C++ STL源码剖析之map、multimap、initializer_list

    map/multimap 以rb_tree为底层结构,因此有元素自动排序特点,排序的依据是key。

  7. 32

    从0到1打牢算法基础之手写一个哈希表

    目的:手写实现一个哈希表,采用拉链法构建,每个hashkey对应的是一个红黑树。

  8. 33

    C++ STL源码剖析之容器配接器stack与queue、priority_queue

    为何stack与queue不被称为容器呢?

  9. 34

    C++ STL源码剖析之红黑树

    在STL源码中有两段话,简单翻译后如下:

  10. 35

    STL之set与multiset那些事

    set/multiset以rb_tree为底层结构,因此有元素自动排序特性。排序的依据是key,而set/multiset元素的value和key合二为一:va

  11. 36

    C++ STL 源码剖析之 Traits 编程技法

    在 STL 编程中,容器和算法是独立设计的,即数据结构和算法是独立设计的,连接容器和算法的桥梁就是迭代器了,迭代器使其独立设计成为可能。如下图所示:

  12. 37

    typename

    STL底层源码有下面几行,typedef与typename联用,这几个看着好复杂,究竟啥意思,我们今天一起来剖析!

  13. 38

    C++ STL源码剖析之unordered_map、unordered_multimap、unordered_set、unordered_multiset

    前面学到了hashtable,而这节是hashtable的容器适配器:unordered_map。

  14. 39

    STL源码剖析之vector

    vector的数据安排以及操作方式,与array非常相似。两者的唯一差别在于空间的运用的灵活性,array是静态的,一旦配置了就不能改变,而 vector是动态

  15. 40

    STL设计之EBO(空基类优化)

    EBO简称Empty Base Optimization。

  1. 41

    设计模式:单例模式

    相信大家面试都逃不开设计模式话题,本节将阐述面试中的最常用的设计模式单例模式,从分类,线程安全,不基于C++11标准的角度与基于C++11标准的角度,有哪些解决

  1. 42

    初始化列表与赋值

    - const成员的初始化只能在构造函数初始化列表中进行

  2. 43

    C++惯用法之enum class

    在Effective modern C++中Item 10: Prefer scoped enums to unscoped enum,调到要用有范围的enum

  3. 44

    C++惯用法之消除垃圾收集器-资源获取即初始化方法(RAII)

    在C语言中,有三种类型的内存分配:静态、自动和动态。静态变量是嵌入在源文件中的常数,因为它们有已知的大小并且从不改变,所以它们并不那么有趣。自动分配可以被认为是

  4. 45

    copy-swap 惯用法

    > 为什么我们需要复制和交换习惯?

  5. 46

    C++惯用法之pImpl

    “指向实现的指针”或“pImpl”是一种 C++ 编程技巧,它将类的实现细节从对象表示中移除,放到一个分离的类中,并以一个不透明的指针进行访问。

  1. 47

    10日c++实战狂练

    - x day1https://github.com/Light-City/CPlusPlusThings/tree/master/practical_exer

  2. 48

    Day4 · const 练习

    �����͵Ķ��������г�ʼ�������Ҳ��ܱ����¡�

  3. 49

    ��Ԫ���

    ��Ԫ��C++�ṩ��һ���ƻ����ݷ�װ���������صĻ��ơ�

  4. 50

    Day5 · 构造与析构

    һ��������Ա�Ĺ���

  5. 51

    Day5 · 继承与访问控制

    һ�����м̳�

  6. 52

    Day5 · 运算符重载

    1.���������������Ĺ�ϵ

  7. 53

    Day5 · 三五法则

    һ�����캯�������������Ĺ������

  8. 54

    Day5 · virtual 练习

    ��̳��µĶ����ԣ��ڶ�̳з�ʽ�£�������̳��˶������ij�Ա����������ͬ����ӵ��ͬ����Աʱ�����ײ������ֳ

  9. 55

    Day6 · 综合练习

    一、多态性

  10. 56

    Day7 · 综合练习

    运算符重载是C++的一项强大功能。通过重载,可以扩展C++运算符的功能,使它们能够操作用户自定义的数据类型,增加程序代码的直观性和可读性。

  11. 57

    Day8 · 综合练习

    ģ�壨template����C++ʵ�ִ������û��Ƶ���Ҫ���ߣ��Ƿ��ͼ������������������޹ص�ͨ�ó�����Ƽ�����

  12. 58

    异常处理

    1.catch捕获异常时,不会进行数据类型的默认转换。

  13. 59

    Day10 · 综合练习

    文件例题

  14. 60

    重点实战练习

    ├── 中括号重载.cpphttps://github.com/Light-City/CPlusPlusThings/tree/master/practical