3016分钟
C++基础与深度解析
C++是一门追求高性能的高级语言,在底层开发、高性能计算中占据了重要的角色;C++又是一门相对难以掌握的编程语言,与其它语言相比,它更加难学,难以精通。 这门课程旨在讨论C++的基础知识,重点讲解C+…
C++是一门追求高性能的高级语言,在底层开发、高性能计算中占据了重要的角色;C++又是一门相对难以掌握的编程语言,与其它语言相比,它更加难学,难以精通。
这门课程旨在讨论C++的基础知识,重点讲解C++的基本语法及语法背后的底层细节,比如同样是for循环,如何尽可能的提升其执行效率。同时,课程内容也会适时融入工程经验,为后续进一步学习与使用C++打下牢固的基础。
首先将从类型、表达式到语句、函数、IO全面讲解C++的基础。虽然是基础,但讲解的会很深入,通过结合汇编代码帮助理解底层实现细节,利用cpp reference、cpp insights、compiler explore等深入讲解语法细节,可以让同学们在短时间内打下C++坚实的基础。
接着会从动态内存分配、序列与关联容器、泛型算法和Lambda表达式部分摸索现代C++的语法特性。会详细介绍智能指针如何解决内建指针的痛点,逐个介绍C++引入的容器使用方法,引入泛型算法、Lambda表达式提高编程效率。
最后会从面向过程编程过渡到面向对象编程和元编程的编程范式,讲解类中特殊的成员方法以及它们的自动合成行为,并引入操纵程序的程序(元程序)的编程范式——元编程,以完成编译期计算。
第1章:C++基础
- 1-1 什么是C++
- 1-2 C++开发环境与相关工具
- 1-3 C++的编译:链接模型
第2章:C++初探
- 2-1 从Hello world谈起
- 2-2 系统I/O
- 2-3 猜数字与控制流
- 2-4 结构休与自定义数据类型
第3章:对象与基本类型
- 3-1 从初始化和贼值语句谈起
- 3-2 类型详述
- 3-3 类型划分-基本类型与复杂类型
- 3-4 标准未定义类型
- 3-5 类型别名与类型的自动推导
第4章:数组、vector与字符串
- 4-1 数组(上)
- 4-1 数组(下)
- 4-2 从数组到指针
- 4-3 其他操作
- 4-4 C字符串
- 4-5 多维数组
第5章:表达式基础与详述
- 5-1 表达式基础:引入
- 5-2 表达式基础:左值与右值
- 5-3 表达式基础:类型转换
- 5-4 表达式详述:算术操作符
- 5-5 表达式详述:逻辑与关系操作符
- 5-6 表达式详述:位操作符
- 5-7 表达式详述:赋值操作符
- 5-8 表达式详述:自增与自减运算符
- 5-9 表达式详述:其他操作符
第6章:函数
- 6-1 函数基础
第7章:深入IO
- 7-1 序言
- 7-2 IOStream概述
- 7-3 输入与输出
- 7-4 文件与内存操作
- 7-5 流的定位
- 7-6 流的同步
第8章 动态内存管理
- 8-1 序言
- 8-2 栈内存与堆内存
- 8-3 new的几种常见形式
- 8-4 delete的常见用法
- 8-5 为什么C++中引入智能指针
- 8-5 shared_ptr
- 8-6 unique_ptr
- 8-7 weak_ptr
- 8-8 动态内存的相关问题 I
- 8-9 动态内存的相关问题 II
第9章:序列与关联容器
- 9-1 容器概述
- 9-2 序列容器-array容器模板
- 9-3 序列容器-vector容器模板(上)
- 9-3 序列容器-vector容器模板(下)
- 9-4 关联容器 set
- 9-5 关联容器 map multiset multimap
- 9-5 关联容器 unordered set map multiset multimap
- 9-6 类型适配器和接口适配器
- 9-7 数值适配器和生成器
- 9-8 总结
第10章:泛型算法
- 10-1-1 泛型算法
- 10-1-2 泛型算法
- 10-1-3 泛型算法
- 10-1-4 泛型算法
- 10-2-1 bind与lambda表达式
- 10-2-2bind与lambda表达式
- 10-2-3bind与lambda表达式
- 10-3 泛型算法改进—ranges
- 10-4 总结
第11章:类与面向对象编程
- 11-1 结构体与对象聚合(上)
- 11-1 结构体与对象聚合(下)
- 11-2 成员瓯数(上)
- 11-2 成员瓯数(下)
- 11-3 访问限定符与友元
- 11-4-1 构造、析构与复制成员函数
- 11-4-2构造、析构与复制成员函数
- 11-4-3 构造、析构与复制成员函数
- 11-4-4 构造、析构与复制成员函数
- 11-5 字面值类、成员指针与bind交互(上)
- 11-5 字面值类、成员指针与bind交互(下)
第12童:类的细节
- 12-1-1 运算符重载
- 12-1-2 运算符重载
- 12-1-3 运算符重载
- 12-1-4 运算符重载
- 12-2 类继承
- 12-3 类继承:虚函数-1
- 12-3 类继承:虚函数-2
- 12-4 类的继承:继承与成员函数
- 12-5 类继承一补充知识(上)
- 12-5 类继承一补充知识(下)
第13章:模板
- 导课
- 13-1 函数模板
- 13-2 函数模板实参的类型推导
- 13-3 函数模板实参推导的若干讨论
- 13-4 函数模板的实例化控制
- 13-5 函数模板的特化
- 13-6 避免使用函数模板的特化
- 13-7 类模板与成员函数模板
- 13-8 类模板的实例化、特化与实参推导
- 13-9 C++20新概念Concepts
- 13-10 requires表达式
- 13-11 数值模板参数与模板参数
- 13-12 别名模板
- 13-13 变长模板
- 13-14 包展开与折叠表达式
- 13-15 完美转发
深蓝学院/李伟
专注人工智能与自动驾驶的学习平台/美国微软高级工程师,清华大学博士