C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起库就是受到他启发(完全是头文件组成) 6. fmtlib/fmt - 格式化库,提供 std::format 的替代品(需要 -DFMT_HEADER_ONLY ) 7. gabime/spdlog - 能适配控制台,安卓等多后端的日志库(和 fmt 冲突!) • 只需要把他们的 include 目录或头文件下载下来,然后 include_directories(spdlog/include) 即 可。 • 缺点 为例)的源码放到你工程的根目录: • 这些库能够很好地支持作为子模块引入: 1. fmtlib/fmt - 格式化库,提供 std::format 的替代品 2. gabime/spdlog - 能适配控制台,安卓等多后端的日志库 3. ericniebler/range-v3 - C++20 ranges 库就是受到他启发 4. g-truc/glm - 模仿 GLSL 语法的数学矢量 / 矩阵库 50 码力 | 32 页 | 11.40 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 C++ 版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360 第 16 章 附錄 362 16.1 程式設計環境安裝 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363 16.2 一起參與創作 . . . . . . 前言 www.hello‑algo.com 6 圖 0‑3 執行程式碼示例 執行程式碼的前置工作主要分為三步。 第一步:安裝本地程式設計環境。請參照附錄所示的教程進行安裝,如果已安裝,則可跳過此步驟。 第二步:克隆或下載程式碼倉庫。前往 GitHub 倉庫。如果已經安裝 Git ,可以透過以下命令克隆本倉庫: git clone https://github.com/krahets/hello-algo 可以重新計算接收到的 資料的雜湊值,並與接收到的雜湊值進行比較。如果兩者匹配,那麼資料就被視為完整。 對於密碼學的相關應用,為了防止從雜湊值推導出原始密碼等逆向工程,雜湊演算法需要具備更高等級的安 全特性。 ‧ 單向性:無法透過雜湊值反推出關於輸入資料的任何資訊。 ‧ 抗碰撞性:應當極難找到兩個不同的輸入,使得它們的雜湊值相同。 ‧ 雪崩效應:輸入的微小變化應當導致輸出的顯著且不可預測的變化。0 码力 | 379 页 | 18.79 MB | 10 月前3
C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vectorstd::out_of_range 让程序提前终止(或者被 try-catch 捕获),配合任意一款调试器,就可 以很快速地定位到出错点。 • 不过 at 需要额外检测下标是否越界,虽然更安 全方便调试,但和 [] 相比有一定性能损失。 • int &at(size_t i); • int const &at(size_t i) const; vector 容器: operator[] ,同时还能享受到 vector 容器 RAII 的安 全性。 • ~vector() noexcept; vector 容器: RAII 避免内存泄露 • 如果用 new/delete 或者 malloc/free 就很容易出现忘记释放内存的情况,造成内存泄露 。 • 而 vector 会在离开作用域时,自动调用解构函数,释放内存,就不必手动释放了,更安 全。 https://github.0 码力 | 90 页 | 4.93 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南// 自动调用本地的构建系统在 build 里构建,即: make -C build -j4 // 调用本地的构建系统执行 install 这个目标,即安 装 -D 选项:指定配置变量(又称缓存变量) • 可见 CMake 项目的构建分为两步: • 第一步是 cmake -B build ,称为配置阶段( configure ),这时只检测环境并生成构建规则 是一个高性能,跨平台的构建系统, Linux 、 Windows 、 MacOS 上都可 以用。 • Ninja 可以从包管理器里安装,没有包管理器的 Windows 可以用 Python 的包管理器安 装: • pip install ninja (有趣的事实: CMake 也可以通过 pip install cmake 安装……) • 事实上, MSBuild 是单核心的构建系统, Makefile 。 • 他表示是否一定要支持你指定的 C++ 标准:如果为 OFF 则 CMake 检测到编译器不支 持 C++17 时不报错,而是默默调低到 C++14 给你用;为 ON 则发现不支持报错,更安 全。 https://crascit.com/2015/03/28/enabling-cxx11-in-cmake/ 设置 C++ 标准: CMAKE_CXX_STANDARD 变量 • CMAKE_CXX_EXTENSIONS0 码力 | 166 页 | 6.54 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 03 现代 C++ 进阶:模板元编程的条件表达式中,其实可以直接写 if (ret) ,他和 if (ret.has_value()) 等价 。 • 没错,这样看来 optional 是在模仿指针 , nullopt 则模仿 nullptr 。但是他更安 全,且符合 RAII 思想,当设为 nullopt 时会自动释放内部的对象。 • 利用这一点可以实现 RAII 容器的提前 释放。和 unique_ptr 的区别在于他的 对象存储在栈上,效率更高。0 码力 | 82 页 | 12.15 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串• s.append(“world”s, 3) 改成 s += string_view(“world”).substr(3) • 又高效,又直观易懂,且 substr 附带了自动检查越界的能力,安 全。 • string_view(“world”) 也可以简写作 “ world”sv ,我们稍后再详细谈 谈。 运算符 + 和 += • 刚刚说了 + 和 += 比 append 更直观,而且只要配合0 码力 | 162 页 | 40.20 MB | 1 年前3
《深入浅出MFC》2/e你需要什麼技術基礎 / 29 你需要什麼軟硬體環境 / 29 讓我們使用同㆒種語言 / 30 本書符號習慣 / 34 磁片內容與安裝 / 34 範例程式說明 / 34 與前版本之差異 / 39 如何聯絡作者 / 40 第㆒篇 勿在浮砂築高臺 - 本書技術前提 / 001 第1章 Win32 * 本章回顧 / 216 第㆓篇 欲善工事先利其器- Visual C++ 5.0 開發工具 / 217 第4章 Visual C++ - 整合性軟體開發環境 / 219 安裝與組成 / 220 ㆕個重要的工具 / 234 內務府總管:Visual C++ 整合開發環境/ 236 關於 project / 237 【Window】菜单中加入两个新命令项: 命令项目名称 识别码(ID) 提示字符串 再在Resource View 窗口中选择IDR_MAINFRAME 工具栏,增加两个按钮,安 排在Help 按钮之后: 这两个按钮分别对应于新添加的两个菜单命令项目。 进入ClassWizard,为两个UI 对象制作 Message Map。这两个命令消息并不 会影响Document0 码力 | 1009 页 | 11.08 MB | 1 年前3
Hello 算法 1.0.0b4 C++版直至目前: ‧ MD5 和 SHA‑1 已多次被成功攻击,因此它们被各类安全应用弃用。 ‧ SHA‑2 系列中的 SHA‑256 是最安全的哈希算法之一,仍未出现成功的攻击案例,因此常被用在各类安 全应用与协议中。 ‧ SHA‑3 相较 SHA‑2 的实现开销更低、计算效率更高,但目前使用覆盖度不如 SHA‑2 系列。 MD5 SHA‑1 SHA‑2 SHA‑3 推出时 间 1992 哈希算法通常采用大质数作为模数,以最大化地保证哈希值的均匀分布,减少哈希冲突。 ‧ 常见的哈希算法包括 MD5, SHA‑1, SHA‑2, SHA3 等。MD5 常用语校验文件完整性,SHA‑2 常用于安 全应用与协议。 ‧ 编程语言通常会为数据类型提供内置哈希算法,用于计算哈希表中的桶索引。通常情况下,只有不可变 对象是可哈希的。 6.4.1. Q & A � 哈希表的时间复杂度为什么不是0 码力 | 343 页 | 27.39 MB | 1 年前3
Hello 算法 1.1.0 C++ 版Code 的插件市场中搜索 go ,安装 Go 。 3. 按快捷键 Ctrl + Shift + P 呼出命令栏,输入 go ,选择 Go: Install/Update Tools ,全部勾选并安 装即可。 6. Swift 环境 1. 下载并安装 Swift 。 2. 在 VS Code 的插件市场中搜索 swift ,安装 Swift for Visual Studio Code 。0 码力 | 379 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0b5 C++版展示了在实际应用中常见的哈希算法。 ‧ MD5 和 SHA‑1 已多次被成功攻击,因此它们被各类安全应用弃用。 ‧ SHA‑2 系列中的 SHA‑256 是最安全的哈希算法之一,仍未出现成功的攻击案例,因此常被用在各类安 全应用与协议中。 ‧ SHA‑3 相较 SHA‑2 的实现开销更低、计算效率更高,但目前使用覆盖度不如 SHA‑2 系列。 表 6‑2 常见的哈希算法 MD5 SHA‑1 SHA‑2 SHA‑30 码力 | 377 页 | 30.69 MB | 1 年前3
共 12 条
- 1
- 2













