 C++高性能并行编程与优化 -  课件 - 11 现代 CMake 进阶指南find_package(spdlog REQUIRED) 时却 变成预编译链接库的版本。(嗯,其实不是 PUBLIC 而是 INTERFACE ,因为伪对象没有实体) 和古代 CMake 做对比:为什么 PUBLIC 属性的传播机制如此便利 现代 CMake : 古代 CMake : 和 find_package(TBB CONFIG REQUIRED) 有什么区别? 其实更好的是通过 find_package(TBB 号, 例如” ${MYVAR}” ,这样就可以避免被 if 当做变量名来求值了。 第 10 章:变量与作用域 变量的传播规则:父会传给子 • 父模块里定义的变量,会传递给子模块。 变量的传播规则:子不传给父 • 但是子模块里定义的变量,不会传递给父模块。 变量的传播规则:子不传给父 • 如果父模块里本来就定义了同名变量,则离开子模块后仍保持父模块原来设置的值。 如果子模块需要向父模块里传变量怎么办? csdn.net/Calvin_zhou/article/details/104060927 环境变量的访问方式: $ENV{xx} • 用 ${xx} 访问的是局部变量,局部变量服从刚刚所说的父子模块传播规则。 • 而还有一种特殊的方式可以访问到系统的环境变量( environment variable ): $ENV{xx} 。 • 比如 $ENV{PATH} 就是获取 PATH 这个环境变量的值。0 码力 | 166 页 | 6.54 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 11 现代 CMake 进阶指南find_package(spdlog REQUIRED) 时却 变成预编译链接库的版本。(嗯,其实不是 PUBLIC 而是 INTERFACE ,因为伪对象没有实体) 和古代 CMake 做对比:为什么 PUBLIC 属性的传播机制如此便利 现代 CMake : 古代 CMake : 和 find_package(TBB CONFIG REQUIRED) 有什么区别? 其实更好的是通过 find_package(TBB 号, 例如” ${MYVAR}” ,这样就可以避免被 if 当做变量名来求值了。 第 10 章:变量与作用域 变量的传播规则:父会传给子 • 父模块里定义的变量,会传递给子模块。 变量的传播规则:子不传给父 • 但是子模块里定义的变量,不会传递给父模块。 变量的传播规则:子不传给父 • 如果父模块里本来就定义了同名变量,则离开子模块后仍保持父模块原来设置的值。 如果子模块需要向父模块里传变量怎么办? csdn.net/Calvin_zhou/article/details/104060927 环境变量的访问方式: $ENV{xx} • 用 ${xx} 访问的是局部变量,局部变量服从刚刚所说的父子模块传播规则。 • 而还有一种特殊的方式可以访问到系统的环境变量( environment variable ): $ENV{xx} 。 • 比如 $ENV{PATH} 就是获取 PATH 这个环境变量的值。0 码力 | 166 页 | 6.54 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 15 C++ 系列课:字符与字符串find 应用案例:计算子字符串出现了多少次 官方文档对 find 的描述 https://en.cppreference.com/w/cpp/string/basic_string/find 反向查找 rfind • find 是从字符串头部开始查找,返回第一次出现的地方。 • 而 rfind 则是从尾部开始查找,返回最后一次出现的地方 。 • 例如 “ helloworld”.rfind(‘l’) find_first_not_of 寻找不在集合内的字符 举一反三: find_last_of 、 find_last_not_of • find 的反向版本是 rfind 。 • find_first_of 的反向版本是 find_last_of 。 • find_first_not_of 的反向版本是 find_last_not_of 。 replace 替换一段子字符串 • replace(pos, len, “str”)0 码力 | 162 页 | 40.20 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 15 C++ 系列课:字符与字符串find 应用案例:计算子字符串出现了多少次 官方文档对 find 的描述 https://en.cppreference.com/w/cpp/string/basic_string/find 反向查找 rfind • find 是从字符串头部开始查找,返回第一次出现的地方。 • 而 rfind 则是从尾部开始查找,返回最后一次出现的地方 。 • 例如 “ helloworld”.rfind(‘l’) find_first_not_of 寻找不在集合内的字符 举一反三: find_last_of 、 find_last_not_of • find 的反向版本是 rfind 。 • find_first_of 的反向版本是 find_last_of 。 • find_first_not_of 的反向版本是 find_last_not_of 。 replace 替换一段子字符串 • replace(pos, len, “str”)0 码力 | 162 页 | 40.20 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 01 学 C++ 从 CMake 学起表示上一层目 录。 • 此外,如果不希望让引用 hellolib 的可执行文件自动添加这个路径,把 PUBLIC 改成 PRIVATE 即可。这就是他们的用途:决定一个属性要不要在被 link 的时候传播。 目标的一些其他选项 • 除了头文件搜索目录以外,还有这些选项, PUBLIC 和 PRIVATE 对他们同理: • target_include_directories(myapp PUBLIC0 码力 | 32 页 | 11.40 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 01 学 C++ 从 CMake 学起表示上一层目 录。 • 此外,如果不希望让引用 hellolib 的可执行文件自动添加这个路径,把 PUBLIC 改成 PRIVATE 即可。这就是他们的用途:决定一个属性要不要在被 link 的时候传播。 目标的一些其他选项 • 除了头文件搜索目录以外,还有这些选项, PUBLIC 和 PRIVATE 对他们同理: • target_include_directories(myapp PUBLIC0 码力 | 32 页 | 11.40 MB | 1 年前3
 C++高性能并行编程与优化 -  课件 - 04 从汇编角度看编译器优化。古有纸上谈兵,今有脑内编程 。 • 计算机编程又不是量子物理广义相对论,我们每个人都有电脑,做一下实验很容易,可总 有所谓的“老师”就不肯动动手敲几行命令(写 doc 文件倒挺勤的),在那里传播假知识。 • 在线做编译器实验推荐这个网站: https://godbolt.org/ • 可以实时看源代码编译的结果,还能选不同的编译器版本和 flag 。 • 不要脑内模拟!你误以为某更改0 码力 | 108 页 | 9.47 MB | 1 年前3 C++高性能并行编程与优化 -  课件 - 04 从汇编角度看编译器优化。古有纸上谈兵,今有脑内编程 。 • 计算机编程又不是量子物理广义相对论,我们每个人都有电脑,做一下实验很容易,可总 有所谓的“老师”就不肯动动手敲几行命令(写 doc 文件倒挺勤的),在那里传播假知识。 • 在线做编译器实验推荐这个网站: https://godbolt.org/ • 可以实时看源代码编译的结果,还能选不同的编译器版本和 flag 。 • 不要脑内模拟!你误以为某更改0 码力 | 108 页 | 9.47 MB | 1 年前3
 现代C++ 教程:高速上手C++11/14/17/20第 10 章展望:C++20 简介 总结 本节介绍的几个特性是从仍未介绍的现代 C++ 新特性里使用频次较靠前的特性了,noexcept 是最 为重要的特性,它的一个功能在于能够阻止异常的扩散传播,有效的让编译器最大限度的优化我们的代 码。 第 10 章展望:C++20 简介 C++20 如同 C++11 一样,似乎能够成为一个振奋人心的更新。例如,早在 C++11 时期就跃跃欲 试呼声极高却最终落选的0 码力 | 83 页 | 2.42 MB | 1 年前3 现代C++ 教程:高速上手C++11/14/17/20第 10 章展望:C++20 简介 总结 本节介绍的几个特性是从仍未介绍的现代 C++ 新特性里使用频次较靠前的特性了,noexcept 是最 为重要的特性,它的一个功能在于能够阻止异常的扩散传播,有效的让编译器最大限度的优化我们的代 码。 第 10 章展望:C++20 简介 C++20 如同 C++11 一样,似乎能够成为一个振奋人心的更新。例如,早在 C++11 时期就跃跃欲 试呼声极高却最终落选的0 码力 | 83 页 | 2.42 MB | 1 年前3
 Hello 算法 1.0.0b4 C++版靠近,则容量一定变小。这是因为在移动长板 ? 后: ‧ 宽度 ? − ? 肯定变小。 ‧ 高度由短板决定,因此高度只可能不变(? 仍为短板)或变小(移动后的 ? 成为短板)。 Figure 15‑9. 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。 15. 贪心 hello‑algo.com 327 Figure0 码力 | 343 页 | 27.39 MB | 1 年前3 Hello 算法 1.0.0b4 C++版靠近,则容量一定变小。这是因为在移动长板 ? 后: ‧ 宽度 ? − ? 肯定变小。 ‧ 高度由短板决定,因此高度只可能不变(? 仍为短板)或变小(移动后的 ? 成为短板)。 Figure 15‑9. 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。 15. 贪心 hello‑algo.com 327 Figure0 码力 | 343 页 | 27.39 MB | 1 年前3
 Hello 算法 1.1.0 C++ 版靠近,则容量一定变小。 这是因为在移动长板 ? 后,宽度 ? − ? 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心0 码力 | 379 页 | 18.47 MB | 1 年前3 Hello 算法 1.1.0 C++ 版靠近,则容量一定变小。 这是因为在移动长板 ? 后,宽度 ? − ? 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心0 码力 | 379 页 | 18.47 MB | 1 年前3
 Hello 算法 1.0.0b5 C++版靠近,则容量一定变小。 这是因为在移动长板 ? 后,宽度 ? − ? 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心0 码力 | 377 页 | 30.69 MB | 1 年前3 Hello 算法 1.0.0b5 C++版靠近,则容量一定变小。 这是因为在移动长板 ? 后,宽度 ? − ? 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心0 码力 | 377 页 | 30.69 MB | 1 年前3
 Hello 算法 1.0.0 C++版靠近,则容量一定变小。 这是因为在移动长板 ? 后,宽度 ? − ? 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心0 码力 | 378 页 | 17.59 MB | 1 年前3 Hello 算法 1.0.0 C++版靠近,则容量一定变小。 这是因为在移动长板 ? 后,宽度 ? − ? 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心0 码力 | 378 页 | 17.59 MB | 1 年前3
 Hello 算法 1.2.0 简体中文 C++ 版靠近,则容量一定变小。 这是因为在移动长板 ? 后,宽度 ? − ? 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心0 码力 | 379 页 | 18.48 MB | 10 月前3 Hello 算法 1.2.0 简体中文 C++ 版靠近,则容量一定变小。 这是因为在移动长板 ? 后,宽度 ? − ? 肯定变小;而高度由短板决定,因此高度只可能不变(? 仍为短板)或 变小(移动后的 ? 成为短板)。 图 15‑9 向内移动长板后的状态 反向思考,我们只有向内收缩短板 ? ,才有可能使容量变大。因为虽然宽度一定变小,但高度可能会变大(移 动后的短板 ? 可能会变长)。例如在图 15‑10 中,移动短板后面积变大。 第 15 章 贪心0 码力 | 379 页 | 18.48 MB | 10 月前3
共 12 条
- 1
- 2













