Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Extra-Creativity/Modern-Cpp-Basics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

109 Commits

Repository files navigation

Modern-Cpp-Basics

现代C++基础课件与代码仓库,课程介绍与安排如下(也可详见课程主页)。需要编程环境至少支持C++23(如对于MSVC,至少使用Visual Studio 2022且更新至最新),在第六章也提供了一个简单的docker。

重要通知

  1. 尽管本课程名字中含有"基础"二字,但实际上探究了C++中许多困难的部分(如容器的实现算法)并具有先修要求,因此并不适合编程新手。
  2. 我在视频和作业中使用中文,而在PPT中使用英文。
  3. 本课程允许转载,只需要注明该视频的出处和我的名字。准确说,课程使用CC-BY-NC-SA 4.0协议。
  4. 由于这是我第一次讲课,因此必然在课程编排、作业及授课过程等存在不合理的情况,如果觉得学不下去并不一定是你的问题,可以再参考其他课程。

课程介绍

C++是高性能、低延时编程语言的不二之选,广泛应用于高频交易、游戏引擎、深度学习框架等各种性能敏感场景。然而,在许多学校的课程中,对C++的教授主要停止于C++98的知识,不符合一般工程的实践。随着C++的不断演进,现代C++已经提供了大量的新特性,使得编写C++更加容易。因此,本课程将全面而系统地介绍C++11到C++23的重大特性,并深入其中的一部分进行剖析,希望可以使得学生初步具备读懂工程代码、理解性能权衡、懂得如何安全编写C++的能力。

注:由于本意为方便北大大二本科生学习,因此课程的组织是先从本科生此时已经学习过的C++知识进行深入的(例如,把容器和算法的部分放到了非常前面的部分)。

课程先修要求

【计算机】:对于北大学生,要求先修计算概论(A)、程序设计实习(或软件设计实践)、计算机系统导论(ICS)、数据结构与算法。等价地,这需要先掌握如下知识:

  1. C++ 基础

    • 基本类型、数组、结构体、函数、指针、枚举、运算符
    • 基本 OOP:类、构造函数/析构函数、继承、多态、this 指针
    • 函数重载、运算符重载、拷贝构造/赋值
    • 模板基础、容器、左值引用
    • 基本 IO:cin/cout
  2. 计算机系统基础:已学习 Computer Systems: A Programmer's Perspective (CSAPP)。本书存在CMU的网课,详情可见CSDIY

  3. 数据结构与算法基础:任何基础的数据结构课程均可;本人推荐清华大学邓俊辉老师的数据结构课程(分为两部分)。提供的链接是学堂在线2026年课程的链接,该课程每年都会免费翻新出来;如果点进去发现已经收费了,可以在平台搜索"数据结构"来找到最新年度的免费课程。

【英语】:四级水平即可。

课时安排

【课时】:共安排 16 章节的课程,每节平均两个半小时(3学分课程),但具体时间随着内容复杂程度变化。第十六章作为补充章节话题较多,虽不是核心内容,但会相对较长。

【作业】:每章后会提供习题及示例代码,全部是编程任务;自第五章开始,每章提供部分或全部习题的答案。

【其它】:中文授课,英文课件;每节课的评论区及作业可能会出现纠错或补充,注意查看。

课程大纲与讲义

课程视频上传于bilibili

讲座 主题 资料
1 课程简介 课件 / 作业
2 基础复习与扩展 课件 / 作业
3 容器 课件 / 作业
4 Ranges与算法 课件 / 作业
5 生命周期与类型安全 课件 / 作业
6 多文件编程 课件 / 作业
7 错误处理 课件 / 作业
8 字符串与流 课件 / 作业
9 移动语义基础 课件 / 作业
10 值分类与移动语义 课件 / 作业
11 模板基础与移动语义 课件 / 作业
12 模板进阶 课件 / 作业
13 多线程 课件 / 作业
14 并发进阶 课件 / 作业
15 内存管理 课件 / 作业
16 补充与总结 课件 / 作业

推荐工具

鸣谢

感谢谷雨学长对部分课件内容进行了校对。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /