C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串字符(按 ASCII 码比较),如果相等则继续比较第二个字符,不相等则直接以这个比较 的结果返回 …… ,第二个比完比第三个 如果比到末尾全都相等,分两种情况: • 其中一个字符串比较短,则认为长的字符串大于短的字符串。 • 两个字符串长度也一样,则认为两者相等。 • 例如: • “azazel” = “azazel” 因为完全一样啊 比较了 6 次 Linux 命令行实验 Linux 命令行实验 字符串应用实战(作业) 第 10 章 课后作业 • 输入是一个文本文件 a.txt : • 1 xxx • 4 yyyyyyy • 3 zzzz • 2 wwwww • 要求按照前面的数字排序,输 出到另一个文本文件 b.txt : • 1 xxx • 2 wwwww • 3 zzzz • 4 yyyyyyy 非常感谢相依同学提供了这道有趣的题目:0 码力 | 162 页 | 40.20 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南Config 文件,这时候就必须 用 find_package(OpenVDB REQUIRED) 而不能带 CONFIG 选项。 /usr/lib/cmake/TBB/TBBConfig.cmake 长啥样? 不论是 TBBConfig.cmake 还是 FindTBB.cmake ,这个文件通常 由库的作者提供,在 Linux 的包管理器安装 tbb 后也会自动安装 这个文件。少部分对 CMake cmake-gui -B build 来启动 图形界面编辑各个缓存选项。 • 当然,直接用编辑器打开 build/CMakeCache.txt 修改后保存也是可以的。 • CMakeCache.txt 用文本存储数据,就是可供用 户手动编辑,或是被第三方软件打开并解析的。 缓存变量到底该如何更新?暴力解决:删 build 大法 用万能的“删 build 大法”当然是可以的。这样重新执行的时候缓存变量不存在,0 码力 | 166 页 | 6.54 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针整数的加减乘除就要用特殊的指令来模拟了。 整数的表示范围受位数限制 • 8 位长的整数能表示的范围是 0 到 2^8-1 ,也就是 0 到 255 。 • 16 位长的整数能表示的范围是 0 到 2^16-1 ,也就是 0 到 65535 。 • 32 位长的整数能表示的范围是 0 到 2^32-1 ,也就是 0 到 4294967295 。 • 64 位长的整数能表示的范围是 0 到 2^64-1 ,也就是 0 size_t 还是 uint32_t ,那就无法表示超过 4GB 大小的数组了。 • 今日乳 ja 笑话: java 的字符串常量不能超过 65535 个字符,因为他们是用 uint16_t 表示字符串长 度。 • 因此对于表示”长度”、”大小”的用途,可以用 size_t 这个直观的名字,他和 uintptr_t 等价 。 • size_t 是标准库大量使用的用于表示大小的类型,例如 vector::size()0 码力 | 128 页 | 2.95 MB | 1 年前3
谈谈MYSQL那点事SQL SQL 语句的编写 语句的编写 谨慎建立 谨慎建立 unique unique 类型的索引(唯一索引) 类型的索引(唯一索引) 大文本字段不建立为索引,如果要对大文本字段进行检索, 大文本字段不建立为索引,如果要对大文本字段进行检索, 可以考虑全文索引 可以考虑全文索引 频繁更新的列不适合建立过多索引 频繁更新的列不适合建立过多索引 应用优化 应用优化0 码力 | 38 页 | 2.04 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人上海应用中心 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 授、中国计算机学会前理事长,中国计算机系统结构 的学科带头人,我国高性能计算和存储系统等方面的 泰斗和先行者。 2021 年 3 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。0 码力 | 38 页 | 24.68 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起include 目录或头文件下载下来,然后 include_directories(spdlog/include) 即 可。 • 缺点:函数直接实现在头文件里,没有提前编译,从而需要重复编译同样内容,编译时间长。 glm - 使用这个神奇的数学库 第三方库 - 作为子模块引入 • 第二友好的方式则是作为 CMake 子模块引入,也就是通过 add_subdirectory 。 • 方法就是把那个项目(以0 码力 | 32 页 | 11.40 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理不能拷贝,但可以移动 • 第二种是,你的 func() 需要“夺走”资源的 占有权。比如右边这个例子, func 把指针 放到一个全局的列表里, p 的生命周期将 会变得和 objlist 一样长。因此需要接过掌 管对象生命周期的大权。 • 请根据你的具体情况,决定要选用哪一种 解决方案。 移交控制权后仍希望访问到 p 指向的对象 • 解决方案 2 中,有时候我们会遇到移交控 制权后,仍希望访问到对象的需求。0 码力 | 96 页 | 16.28 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化简单来说:哪个索引最连续,就在后面,最不连 续的那个索引,就在最前面。 那么行主序其实是 XY 序,列主序其实是 YX 序。 如果你和盆友在电话里实在说不清楚,直接把扁 平化用的公式 (z * ny + y) * nx + x 通过文本信 息发给他也可,他看完就知道是 ZYX 序了。 主流程序都会用 YX 序, ZYX 序。 二维数组的遍历 • 二维数组在内存中的布局有 YX 序, XY 序。 • 二维数组的循环遍历也有 YX0 码力 | 147 页 | 18.88 MB | 1 年前3
共 8 条
- 1













