CS中心的C ++课程,第二部分

计算机科学中心是POMI RAS, JetBrains和Yandex 数据分析学校计算机科学俱乐部的联合倡议。

该中心的存在使有才华的学生和毕业生能够在他们感兴趣的领域发展:计算机科学,数据科学或软件工程。

中心的C ++课程分为两个部分,由CS中心的老师Valery Mikhailovich Lesin和valery -l教授,ITMO和JetBrains共同负责“软件开发/软件工程”, Simlabs的技术总监。

第二部分将帮助您掌握现代C ++的大多数功能。 最有可能的是,您不会在第二学期末成为专家,但是,如果具备上述优势,那么该技能应足以在大多数项目中有效地使用C ++。

我们将探索语言和标准库的新功能:移动语义,绑定/函数,enable_if / if constexpr,协程等。 让我们看一些典型的任务:多线程编程,使用Windows和Linux中的库,以及其他。

有一个不错的看法!

1.标准库。 组成,STL容器,容器类型,向量容器,迭代器,向量的工作方式。 Sdt ::列出容器,适配器,关联容器,地图迭代,搜索并插入地图。 索引,从地图中删除(组)。 其他关联容器。


2.移动语义和完善的转发。 快速程序。 返回值优化。 左值与右值。 如何区分临时对象和非临时对象。 转换&<-> const&<-> &&。 移动构造函数与其他构造函数。 从函数返回vs &&值。 按值返回大对象,按值传输。 转发参数问题。 C ++ 11中链接的新规则。完美的转发。


3.算法和函子。 标准算法,算法说明。 非修改和修改操作。 排序和搜索。 容器与迭代器。 标准函子。 提升 范围。 范围概念。


4.绑定和功能。 任务:调用回调。 一点魔力-std ::绑定。 如何避免复制。 参考/参考 与函子结合使用。 调用方法。 嵌套绑定。 std ::函数。 绑定与功能的协同效应。 性能。 占位符如何工作。


5.例外。 处理错误的方法。 尝试...抓住。 异常类型 使用RAII。 传递参数。 类堆栈。 例外情况的安全保证。 保证没有例外。 复制堆栈。 减少堆栈需求。 例外说明。 noexcept运算符和noexcept规范(C ++ 11)。 STL容器。 保修和要求栈。


6.去SFINAE还是不去SFINAE。 根据类型选择代码。 根据条件选择类型。 还原性测试。 检查基类。 SFINAE。 检查容器。 按类型选择属性。


7. C ++创新。 匿名函数,自动,decltype,可变参数模板,参数包,包扩展和折叠表达式。 非静态数据成员初始化程序(如果为constexpr)。


8.行。 输入/输出。 编码(字符集)。 字符串std :: basic_string。 基本的字符串操作。 提升字符串算法。 文本与二进制文件格式。 I / O流,输出,输入,流状态,格式化的输入/输出。 机械手,文件流。


9.预处理器。 宏的使用和适用性。 常量的定义,条件编译。 包括警卫。 宏功能。 将令牌转换为字符串,并串联令牌。 多行宏,预定义。 断言。 可变宏,宏重载。 皮普尔成语。


10.图书馆。 静态和动态库。 静态与动态。 无需事先链接即可下载库。 导出的功能。 COM技术。


11.多线程。 进程和线程。 多任务处理的类型。 问题情况。 创建流。 流对象是std :: thread。 辅助功能。 互斥。 锁管理。 异常捕获。 异常重新抛出。 条件变量。


12.多线程。 第2部分。递延计算。 未来与承诺。 异步与未来。 事件/消息队列。 合同,概念。


课程的第一部分

Source: https://habr.com/ru/post/zh-CN473484/


All Articles