C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串容器全家桶及其妙用举例 5. 函子 functor 与 lambda 表达式知多少 6. 通过实战案例来学习 STL 算法库 7. C++ 标准输入输出流 & 字符串格式化 8. traits 技术,用户自定义迭代器与算法 9. allocator ,内存管理与对象生命周期 ASCII 码 第 1 章 计算机如何表达字符 https://zh.wikipedia 给出警告),但是运行结果不对,或者还有可能崩溃。 泛型的 iostream 应运而生 • 得益于 C++ 的重载技术, cout 不用你手动指定类型,他 会自动识别参数的类型,帮你调用相应的格式化函数。 c_str 和 data 的区别 • s.c_str() 保证返回的是以 0 结尾的字符串首地址指针,总长度为 s.size() + 1 。 • s.data() 只保证返回长度为 那 to_string 能不能指定十六进制? • 很遗憾, to_string 是个缓解“键盘压力”的帮手函数,功能根本不全。 • 用 + 来拼接字符串也只是初学者的做法,他们并不是专业的字符串格式化工 具。 • 想要完整的功能(指定多少进制,左右对齐等),可以用专业的做法: 1. 古代 C 语言的 sprintf 2. 古代 C++ 的 stringstream 3. C++20 新增的 std::format0 码力 | 162 页 | 40.20 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起库,甚至没依赖 STL (可定制性高,工程美学经典) 5. ericniebler/range-v3 - C++20 ranges 库就是受到他启发(完全是头文件组成) 6. fmtlib/fmt - 格式化库,提供 std::format 的替代品(需要 -DFMT_HEADER_ONLY ) 7. gabime/spdlog - 能适配控制台,安卓等多后端的日志库(和 fmt 冲突!) • 只需要把他们的 子模块引入,也就是通过 add_subdirectory 。 • 方法就是把那个项目(以 fmt 为例)的源码放到你工程的根目录: • 这些库能够很好地支持作为子模块引入: 1. fmtlib/fmt - 格式化库,提供 std::format 的替代品 2. gabime/spdlog - 能适配控制台,安卓等多后端的日志库 3. ericniebler/range-v3 - C++20 ranges google/benchmark - 谷歌性能评估框架 9. glfw/glfw - OpenGL 窗口和上下文管理 10.libigl/libigl - 各种图形学算法大合集 fmt - 使用这个神奇的格式化库 • fmt::format 的用法和 Python 的 str.format 大致相似: CMake - 引用系统中预安装的第三方库 • 可以通过 find_package 命令寻找系统中的包0 码力 | 32 页 | 11.40 MB | 1 年前3
谈谈MYSQL那点事SQL SQL 语句的编写 语句的编写 谨慎建立 谨慎建立 unique unique 类型的索引(唯一索引) 类型的索引(唯一索引) 大文本字段不建立为索引,如果要对大文本字段进行检索, 大文本字段不建立为索引,如果要对大文本字段进行检索, 可以考虑全文索引 可以考虑全文索引 频繁更新的列不适合建立过多索引 频繁更新的列不适合建立过多索引 应用优化 应用优化0 码力 | 38 页 | 2.04 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 14 C++ 标准库系列课 - 你所不知道的 set 容器的爱恨纠葛 4. 万能的 map 容器全家桶及其妙用举例 5. 函子 functor 与 lambda 表达式知多少 6. 通过实战案例来学习 STL 算法库 7. C++ 标准输入输出流 & 字符串格式化 8. traits 技术,用户自定义迭代器与算法 9. allocator ,内存管理与对象生命周期 set 和 vector 的区别 • 都是能存储一连串数据的容器 。 • 区别 1 :0 码力 | 83 页 | 10.23 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 17 由浅入深学习 map 容器万能的 map 容器全家桶及其妙用举例 ( 本期 ) 5. 函子 functor 与 lambda 表达式知多少 6. 通过实战案例来学习 STL 算法库 7. C++ 标准输入输出流 & 字符串格式化 8. traits 技术,用户自定义迭代器与算法 9. allocator ,内存管理与对象生命周期 10. C++ 异常处理机制的前世今生 我们都要认真鞋习哦 我们都要认真鞋习哦 第一章:读取与写入0 码力 | 90 页 | 8.76 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南cmake-gui -B build 来启动 图形界面编辑各个缓存选项。 • 当然,直接用编辑器打开 build/CMakeCache.txt 修改后保存也是可以的。 • CMakeCache.txt 用文本存储数据,就是可供用 户手动编辑,或是被第三方软件打开并解析的。 缓存变量到底该如何更新?暴力解决:删 build 大法 用万能的“删 build 大法”当然是可以的。这样重新执行的时候缓存变量不存在,0 码力 | 166 页 | 6.54 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化简单来说:哪个索引最连续,就在后面,最不连 续的那个索引,就在最前面。 那么行主序其实是 XY 序,列主序其实是 YX 序。 如果你和盆友在电话里实在说不清楚,直接把扁 平化用的公式 (z * ny + y) * nx + x 通过文本信 息发给他也可,他看完就知道是 ZYX 序了。 主流程序都会用 YX 序, ZYX 序。 二维数组的遍历 • 二维数组在内存中的布局有 YX 序, XY 序。 • 二维数组的循环遍历也有 YX0 码力 | 147 页 | 18.88 MB | 1 年前3
共 7 条
- 1













