https://github.com/muziing/cpp_learning
C++学习代码笔记仓库,OOP、STL,有较多注释帮助理解回顾基本知识点。
https://github.com/muziing/cpp_learning
cpp tutorial
Last synced: 9 months ago
JSON representation
C++学习代码笔记仓库,OOP、STL,有较多注释帮助理解回顾基本知识点。
- Host: GitHub
- URL: https://github.com/muziing/cpp_learning
- Owner: muziing
- License: gpl-3.0
- Created: 2022-02-20T05:08:33.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2023-01-31T12:10:24.000Z (almost 3 years ago)
- Last Synced: 2024-11-11T04:42:30.521Z (about 1 year ago)
- Topics: cpp, tutorial
- Language: C++
- Homepage:
- Size: 254 KB
- Stars: 9
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# C++ 学习笔记代码仓库



## 简介
本仓库收录近期在学习 C++ 时编写的练习代码,有较多注释帮助阅读者理解回顾基本知识点。
## 目录
笔记与课程对应关系:
- Chapter 01~07 - [黑马程序员-C++教程从0到1入门](https://www.bilibili.com/video/BV1et411b73Z/)
- Chapter 08~09 - [达内-C++STL标准模板库教程](https://www.bilibili.com/video/BV1mP4y1o7bA/)
### [Chapter 01:基础语法](Chapter_01_基础语法)
0. [Hello_World.cpp](Chapter_01_基础语法/01_Hello_World.cpp)
1. [Const_and_Pointer.cpp](Chapter_01_基础语法/02_Const_and_Pointer.cpp)
2. [Pointer_and_Array.cpp](Chapter_01_基础语法/03_Pointer_and_Array.cpp)
3. [Pointer_and_Function.cpp](Chapter_01_基础语法/04_Pointer_and_Function.cpp)
4. [Hello_Struct.cpp](Chapter_01_基础语法/05_Hello_Struct.cpp)
5. [struct_02.cpp](Chapter_01_基础语法/06_struct_02.cpp)
6. [struct_03.cpp](Chapter_01_基础语法/07_struct_03.cpp)
7. [struct_04_const.cpp](Chapter_01_基础语法/08_struct_04_const.cpp)
8. [struct_05_project.cpp](Chapter_01_基础语法/09_struct_05_project.cpp)
9. [综合项目练习:通讯录管理系统](Chapter_01_基础语法/10_address_book_project.cpp)
### [Chapter 02:面向对象编程](Chapter_02_面向对象编程)
1. [内存四区_全局区.cpp](Chapter_02_面向对象编程/01_内存四区_全局区.cpp)
2. [内存四区_栈区.cpp](Chapter_02_面向对象编程/02_内存四区_栈区.cpp)
3. [内存四区_堆区.cpp](Chapter_02_面向对象编程/03_内存四区_堆区.cpp)
4. [new.cpp](Chapter_02_面向对象编程/04_new.cpp)
5. [引用_01.cpp](Chapter_02_面向对象编程/05_引用_01.cpp)
6. [引用_02_做函数参数.cpp](Chapter_02_面向对象编程/06_引用_02_做函数参数.cpp)
7. [引用_03_做函数返回值.cpp](Chapter_02_面向对象编程/07_引用_03_做函数返回值.cpp)
8. [引用_04.cpp](Chapter_02_面向对象编程/08_引用_04.cpp)
9. [引用_05_常量引用.cpp](Chapter_02_面向对象编程/09_引用_05_常量引用.cpp)
10. [函数_01_默认参数.cpp](Chapter_02_面向对象编程/10_函数_01_默认参数.cpp)
11. [函数_02_占位参数.cpp](Chapter_02_面向对象编程/11_函数_02_占位参数.cpp)
12. [函数_03_函数重载.cpp](Chapter_02_面向对象编程/12_函数_03_函数重载.cpp)
13. [类与对象_封装_01.cpp](Chapter_02_面向对象编程/13_类与对象_封装_01.cpp)
14. [类与对象_封装_02.cpp](Chapter_02_面向对象编程/14_类与对象_封装_02.cpp)
15. [类与对象_封装_03.cpp](Chapter_02_面向对象编程/15_类与对象_封装_03.cpp)
16. [类与对象_对象特征_01.cpp](Chapter_02_面向对象编程/16_类与对象_对象特征_01.cpp)
17. [类与对象_对象特征_02.cpp](Chapter_02_面向对象编程/17_类与对象_对象特征_02.cpp)
18. [类与对象_对象特征_03.cpp](Chapter_02_面向对象编程/18_类与对象_对象特征_03.cpp)
19. [类与对象_对象特征_04.cpp](Chapter_02_面向对象编程/19_类与对象_对象特征_04.cpp)
20. [类与对象_对象特征_05.cpp](Chapter_02_面向对象编程/20_类与对象_对象特征_05.cpp)
21. [类与对象_对象特征_06.cpp](Chapter_02_面向对象编程/21_类与对象_对象特征_06.cpp)
22. [类与对象_对象特征_07.cpp](Chapter_02_面向对象编程/22_类与对象_对象特征_07.cpp)
23. [类与对象_对象特征_08.cpp](Chapter_02_面向对象编程/23_类与对象_对象特征_08.cpp)
24. [类与对象_对象特征_09.cpp](Chapter_02_面向对象编程/24_类与对象_对象特征_09.cpp)
25. [类与对象_对象特征_10.cpp](Chapter_02_面向对象编程/25_类与对象_对象特征_10.cpp)
26. [类与对象_对象特征_11.cpp](Chapter_02_面向对象编程/26_类与对象_对象特征_11.cpp)
27. [类与对象_对象特征_12.cpp](Chapter_02_面向对象编程/27_类与对象_对象特征_12.cpp)
28. [类与对象_友元_01.cpp](Chapter_02_面向对象编程/28_类与对象_友元_01.cpp)
29. [类与对象_友元_02.cpp](Chapter_02_面向对象编程/29_类与对象_友元_02.cpp)
30. [类与对象_友元_03.cpp](Chapter_02_面向对象编程/30_类与对象_友元_03.cpp)
31. [类与对象_运算符重载_01.cpp](Chapter_02_面向对象编程/31_类与对象_运算符重载_01.cpp)
32. [类与对象_运算符重载_02.cpp](Chapter_02_面向对象编程/32_类与对象_运算符重载_02.cpp)
33. [类与对象_运算符重载_03.cpp](Chapter_02_面向对象编程/33_类与对象_运算符重载_03.cpp)
34. [类与对象_运算符重载_04.cpp](Chapter_02_面向对象编程/34_类与对象_运算符重载_04.cpp)
35. [类与对象_运算符重载_05.cpp](Chapter_02_面向对象编程/35_类与对象_运算符重载_05.cpp)
36. [类与对象_运算符重载_06.cpp](Chapter_02_面向对象编程/36_类与对象_运算符重载_06.cpp)
37. [类与对象_继承_01.cpp](Chapter_02_面向对象编程/37_类与对象_继承_01.cpp)
38. [类与对象_继承_02.cpp](Chapter_02_面向对象编程/38_类与对象_继承_02.cpp)
39. [类与对象_继承_03.cpp](Chapter_02_面向对象编程/39_类与对象_继承_03.cpp)
40. [类与对象_继承_04.cpp](Chapter_02_面向对象编程/40_类与对象_继承_04.cpp)
41. [类与对象_继承_05.cpp](Chapter_02_面向对象编程/41_类与对象_继承_05.cpp)
42. [类与对象_继承_06.cpp](Chapter_02_面向对象编程/42_类与对象_继承_06.cpp)
43. [类与对象_继承_07.cpp](Chapter_02_面向对象编程/43_类与对象_继承_07.cpp)
44. [类与对象_多态_01.cpp](Chapter_02_面向对象编程/44_类与对象_多态_01.cpp)
45. [类与对象_多态_02.cpp](Chapter_02_面向对象编程/45_类与对象_多态_02.cpp)
46. [类与对象_多态_03.cpp](Chapter_02_面向对象编程/46_类与对象_多态_03.cpp)
47. [类与对象_多态_04.cpp](Chapter_02_面向对象编程/47_类与对象_多态_04.cpp)
48. [类与对象_多态_05.cpp](Chapter_02_面向对象编程/48_类与对象_多态_05.cpp)
49. [类与对象_多态_06.cpp](Chapter_02_面向对象编程/49_类与对象_多态_06.cpp)
50. [文件操作_文本文件_01.cpp](Chapter_02_面向对象编程/50_文件操作_文本文件_01.cpp)
51. [文件对象_文本文件_02.cpp](Chapter_02_面向对象编程/51_文件对象_文本文件_02.cpp)
52. [文件操作_二进制文件_01.cpp](Chapter_02_面向对象编程/52_文件操作_二进制文件_01.cpp)
53. [文件操作_二进制文件_02.cpp](Chapter_02_面向对象编程/53_文件操作_二进制文件_02.cpp)
### [Chapter 03:模板](Chapter_03_模板)
1. [函数模板基本语法.cpp](Chapter_03_模板/01_函数模板基本语法.cpp)
2. [函数模板注意事项.cpp](Chapter_03_模板/02_函数模板注意事项.cpp)
3. [函数模板案例_数组排序.cpp](Chapter_03_模板/03_函数模板案例_数组排序.cpp)
4. [普通函数与函数模板区别.cpp](Chapter_03_模板/04_普通函数与函数模板区别.cpp)
5. [普通函数与函数模板的调用规则.cpp](Chapter_03_模板/05_普通函数与函数模板的调用规则.cpp)
6. [模板的局限性.cpp](Chapter_03_模板/06_模板的局限性.cpp)
7. [类模板基本语法.cpp](Chapter_03_模板/07_类模板基本语法.cpp)
8. [类模板与函数模板区别.cpp](Chapter_03_模板/08_类模板与函数模板区别.cpp)
9. [类模板中成员函数创建时机.cpp](Chapter_03_模板/09_类模板中成员函数创建时机.cpp)
10. [类模板对象做函数参数.cpp](Chapter_03_模板/10_类模板对象做函数参数.cpp)
11. [类模板与继承.cpp](Chapter_03_模板/11_类模板与继承.cpp)
12. [类模板成员函数类外实现.cpp](Chapter_03_模板/12_类模板成员函数类外实现.cpp)
13. [类模板的分文件编写](Chapter_03_模板/13_类模板的分文件编写)
14. [类模板与友元.cpp](Chapter_03_模板/14_类模板与友元.cpp)
15. [类模板案例:自定义数组类](Chapter_03_模板/15_类模板案例_自定义数组类)
### [Chapter 04:STL容器](Chapter_04_STL_容器)
1. [STL基本概念.md](Chapter_04_STL_容器/01_STL基本概念.md)
2. [vector存放内置数据类型.cpp](Chapter_04_STL_容器/02_vector存放内置数据类型.cpp)
3. [vector存放自定义数据类型.cpp](Chapter_04_STL_容器/03_vector存放自定义数据类型.cpp)
4. [vector容器嵌套容器.cpp](Chapter_04_STL_容器/04_vector容器嵌套容器.cpp)
5. [string_构造函数.cpp](Chapter_04_STL_容器/05_string_构造函数.cpp)
6. [string_赋值操作.cpp](Chapter_04_STL_容器/06_string_赋值操作.cpp)
7. [string_字符串拼接.cpp](Chapter_04_STL_容器/07_string_字符串拼接.cpp)
8. [string_查找与替换.cpp](Chapter_04_STL_容器/08_string_查找与替换.cpp)
9. [string_字符串比较.cpp](Chapter_04_STL_容器/09_string_字符串比较.cpp)
10. [string_字符存取.cpp](Chapter_04_STL_容器/10_string_字符存取.cpp)
11. [string_字符串插入与删除.cpp](Chapter_04_STL_容器/11_string_字符串插入与删除.cpp)
12. [string_子串获取.cpp](Chapter_04_STL_容器/12_string_子串获取.cpp)
13. [vector_构造函数.cpp](Chapter_04_STL_容器/13_vector_构造函数.cpp)
14. [vector_赋值操作.cpp](Chapter_04_STL_容器/14_vector_赋值操作.cpp)
15. [vector_容量与大小.cpp](Chapter_04_STL_容器/15_vector_容量与大小.cpp)
16. [vector_插入与删除.cpp](Chapter_04_STL_容器/16_vector_插入与删除.cpp)
17. [vector_数据存取.cpp](Chapter_04_STL_容器/17_vector_数据存取.cpp)
18. [vector_互换容器](Chapter_04_STL_容器/18_vector_互换容器.cpp)
19. [vector_预留空间.cpp](Chapter_04_STL_容器/19_vector_预留空间.cpp)
20. [deque_构造函数.cpp](Chapter_04_STL_容器/20_deque_构造函数.cpp)
21. [deque_赋值操作.cpp](Chapter_04_STL_容器/21_deque_赋值操作.cpp)
22. [deque_大小操作.cpp](Chapter_04_STL_容器/22_deque_大小操作.cpp)
23. [deque_插入与删除.cpp](Chapter_04_STL_容器/23_deque_插入与删除.cpp)
24. [deque_数据存取.cpp](Chapter_04_STL_容器/24_deque_数据存取.cpp)
25. [deque_排序.cpp](Chapter_04_STL_容器/25_deque_排序.cpp)
26. [案例_评委打分.cpp](Chapter_04_STL_容器/26_案例_评委打分.cpp)
27. [stack_基本概念与常用接口.cpp](Chapter_04_STL_容器/27_stack_基本概念与常用接口.cpp)
28. [queue_基本概念与常用接口.cpp](Chapter_04_STL_容器/28_queue_基本概念与常用接口.cpp)
29. [list_基本概念与构造函数](Chapter_04_STL_容器/29_list_基本概念与构造函数.cpp)
30. [list_赋值与交换.cpp](Chapter_04_STL_容器/30_list_赋值与交换.cpp)
31. [list_大小操作.cpp](Chapter_04_STL_容器/31_list_大小操作.cpp)
32. [list_插入与删除.cpp](Chapter_04_STL_容器/32_list_插入与删除.cpp)
33. [list_数据存取.cpp](Chapter_04_STL_容器/33_list_数据存取.cpp)
34. [list_反转与排序.cpp](Chapter_04_STL_容器/34_list_反转与排序.cpp)
35. [list_排序案例.cpp](Chapter_04_STL_容器/35_list_排序案例.cpp)
36. [set/multiset_基本概念_构造与赋值.cpp](Chapter_04_STL_容器/36_set_multiset_基本概念_构造与赋值.cpp)
37. [set_大小与交换.cpp](Chapter_04_STL_容器/37_set_大小与交换.cpp)
38. [set_插入与删除.cpp](Chapter_04_STL_容器/38_set_插入与删除.cpp)
39. [set_查找与统计.cpp](Chapter_04_STL_容器/39_set_查找与统计.cpp)
40. [set与multiset区别.cpp](Chapter_04_STL_容器/40_set与multiset区别.cpp)
41. [pair_对组创建.cpp](Chapter_04_STL_容器/41_pair_对组创建.cpp)
42. [set_内置类型指定规则排序.cpp](Chapter_04_STL_容器/42_set_内置类型指定规则排序.cpp)
43. [set_自定义数据类型指定规则排序.cpp](Chapter_04_STL_容器/43_set_自定义数据类型排序.cpp)
44. [map/multimap_基本概念_构造与赋值.cpp](Chapter_04_STL_容器/44_map_multimap_基本概念_构造与赋值.cpp)
45. [map_大小与交换.cpp](Chapter_04_STL_容器/45_map_大小与交换.cpp)
46. [map_插入与删除.cpp](Chapter_04_STL_容器/46_map_插入与删除.cpp)
47. [map_查找与统计.cpp](Chapter_04_STL_容器/47_map_查找与统计.cpp)
48. [map_排序.cpp](Chapter_04_STL_容器/48_map_排序.cpp)
49. [案例_员工分组.cpp](Chapter_04_STL_容器/49_案例_员工分组.cpp)
### [Chapter 05:STL函数对象](Chapter_05_STL_函数对象)
1. [函数对象_基本使用.cpp](Chapter_05_STL_函数对象/01_函数对象_基本使用.cpp)
2. [谓词_一元谓词.cpp](Chapter_05_STL_函数对象/02_谓词_一元谓词.cpp)
3. [谓词_二元谓词.cpp](Chapter_05_STL_函数对象/03_谓词_二元谓词.cpp)
4. [内建函数对象_算数仿函数.cpp](Chapter_05_STL_函数对象/04_内建函数对象_算数仿函数.cpp)
5. [内建函数对象_关系仿函数.cpp](Chapter_05_STL_函数对象/05_内建函数对象_关系仿函数.cpp)
6. [内建函数对象_逻辑仿函数.cpp](Chapter_05_STL_函数对象/06_内建函数对象_逻辑仿函数.cpp)
### [Chapter 06:STL常用算法](Chapter_06_STL_常用算法/)
1. [遍历_for_each.cpp](Chapter_06_STL_常用算法/01_遍历_for_each.cpp)
2. [遍历_transform.cpp](Chapter_06_STL_常用算法/02_遍历_transform.cpp)
3. [查找_find.cpp](Chapter_06_STL_常用算法/03_查找_find.cpp)
4. [查找_find_if.cpp](Chapter_06_STL_常用算法/04_查找_find_if.cpp)
5. [查找_adjacent_find.cpp](Chapter_06_STL_常用算法/05_查找_adjacent_find.cpp)
6. [binary_search.cpp](Chapter_06_STL_常用算法/06_查找_binary_search.cpp)
7. [查找_count.cpp](Chapter_06_STL_常用算法/07_查找_count.cpp)
8. [查找_count_if.cpp](Chapter_06_STL_常用算法/08_查找_count_if.cpp)
9. [排序_sort.cpp](Chapter_06_STL_常用算法/09_排序_sort.cpp)
10. [random_shuffle.cpp](Chapter_06_STL_常用算法/10_排序_random_shuffle.cpp)
11. [排序_merge.cpp](Chapter_06_STL_常用算法/11_排序_merge.cpp)
12. [排序_reverse.cpp](Chapter_06_STL_常用算法/12_排序_reverse.cpp)
13. [拷贝与替换_copy.cpp](Chapter_06_STL_常用算法/13_拷贝与替换_copy.cpp)
14. [拷贝与替换_replace.cpp](Chapter_06_STL_常用算法/14_拷贝与替换_replace.cpp)
15. [拷贝与替换_replace_if.cpp](Chapter_06_STL_常用算法/15_拷贝与替换_replace_if.cpp)
16. [拷贝与替换_swap.cpp](Chapter_06_STL_常用算法/16_拷贝与替换_swap.cpp)
17. [算数生成_accmulate.cpp](Chapter_06_STL_常用算法/17_算数生成_accmulate.cpp)
18. [算数生成_fill.cpp](Chapter_06_STL_常用算法/18_算数生成_fill.cpp)
19. [集合_set_intersection.cpp](Chapter_06_STL_常用算法/19_集合_set_intersection.cpp)
20. [集合_set_union.cpp](Chapter_06_STL_常用算法/20_集合_set_union.cpp)
21. [集合_set_difference.cpp](Chapter_06_STL_常用算法/21_集合_set_difference.cpp)
### [Chapter 07:案例-机房预约系统](Chapter_07_案例_机房预约系统)
### [Chapter 08:模板(进阶)](Chapter_08_模板_进阶)
1. 模板起源
- [01_typed.cpp](Chapter_08_模板_进阶/01_typed.cpp) - 静态类型语言带来的劣势
- [02_untyped.cpp](Chapter_08_模板_进阶/02_untyped.cpp) - 宏可摆脱数据类型的限制
- [03_macro.cpp](Chapter_08_模板_进阶/03_macro.cpp) - 利用宏构建通用函数框架
2. 函数模板
- [04_functmpl.cpp](Chapter_08_模板_进阶/04_functmpl.cpp) - 函数模板的定义、使用、分析、实例化条件
3. 函数模板扩展
- [05_double_compile.cpp](Chapter_08_模板_进阶/05_double_compile.cpp) - 关于函数模板的两次编译
- [06_deduction.cpp](Chapter_08_模板_进阶/06_deduction.cpp) - 隐式推断类型实参
- [07_overload.cpp](Chapter_08_模板_进阶/07_overload.cpp) - 函数模板的重载
4. 类模板
- [08_clstmpl.cpp](Chapter_08_模板_进阶/08_clstmpl.cpp) - 类模板的声明、使用(上)
- [09_clstmpl.cpp](Chapter_08_模板_进阶/09_clstmpl.cpp) - 类模板的使用(下)
- [10_static.cpp](Chapter_08_模板_进阶/10_static.cpp) - 类模板中的静态成员
- [11_recursion.cpp](Chapter_08_模板_进阶/11_recursion.cpp) - 类模板的递归实例化
5. 类模板扩展
- [12_special.cpp](Chapter_08_模板_进阶/12_special.cpp) - 全局特化
- [13_partial.cpp](Chapter_08_模板_进阶/13_partial.cpp) - 局部特化
- [14_default.cpp](Chapter_08_模板_进阶/14_default.cpp) - 类型形参的缺省值
- [15_valparam.cpp](Chapter_08_模板_进阶/15_valparam.cpp) - 数值形式的模板参数
- [16_membervar.cpp](Chapter_08_模板_进阶/16_membervar.cpp) - 模板技巧-模板型成员变量
- [17_memberfunc.cpp](Chapter_08_模板_进阶/17_memberfunc.cpp) - 模板技巧-模板型成员函数
- [18_membertype.cpp](Chapter_08_模板_进阶/18_membertype.cpp) - 模板技巧-模板型成员类型
- [19_tmplargs.cpp](Chapter_08_模板_进阶/19_tmplargs.cpp) - 模板技巧-模板型模板参数
6. 类模板典型错误
- [20_nested_dependency.cpp](Chapter_08_模板_进阶/20_nested_dependency.cpp) - 嵌套依赖
- [21_temperror.cpp](Chapter_08_模板_进阶/21_temperror.cpp) - 依赖模板参数访问成员函数模板
- [22_this.cpp](Chapter_08_模板_进阶/22_this.cpp) - 子类模板访问基类模板
- [23_init.cpp](Chapter_08_模板_进阶/23_init.cpp) - 零值初始化
- [24_virtual.cpp](Chapter_08_模板_进阶/24_virtual.cpp) - 类模板中的成员虚函数
### [Chapter 09:自行实现一个链表容器](Chapter_09_实现链表容器)
- [list.cpp](Chapter_09_实现链表容器/list.cpp) - 模拟STL,实现链表容器
## 代码统计
代码统计工具:github.com/AlDanial/cloc v1.92
| 语言 | 文件 | 空行 | 注释 | 代码 |
| ------------ | ---- | ---- | ---- | ---- |
| C++ | 192 | 1867 | 2061 | 8284 |
| C/C++ Header | 17 | 105 | 112 | 339 |
| **总计** | 209 | 1972 | 2173 | 8623 |