《深入浅出MFC》2/e
《深入浅出MFC》3/e 没有如期完成的原因是,MFC 本体架构并没有什么大改 变。《深入浅出MFC》2/e 书中所论之工具及程序代码虽采用VC5+MFC42,仍 适用于目前的VC6+MFC421(唯,工具之画面或功能可能有些微变化)。 由于《深入浅出MFC》2/e 并无简体版,因此我时时收到大陆读者来信询问购 买繁体版之管道。一来我不知道是否台湾出版公司有提供海外邮购或电购,二 来即使有,想必带给大家很大 ard 会根据你的选项做出不同 的程序代码,我所据以解说的,是大众化选项下的产品。 第四篇以微软公司附于Visual C++ 光盘片上的一个范例程序Scribble 为主轴,一步一步加 上新的功能。并在其间深入介绍Runtime Type Information(RTTI)、Dynamic Creation、 Persistence(Serialization)、Message Mapping、Command 617 MFC ㆗各式各樣的 DDx_ 函式 / 621 如何喚起對話盒 / 622 本章回顧 / 625 第 11 章 View 功能之加強與重繪效率之提昇 / 627 同時修改多個 Views:UpdateAllViews 和 OnUpdate / 629 在 View ㆗定義㆒個 hint0 码力 | 1009 页 | 11.08 MB | 1 年前3Hello 算法 1.1.0 C++ 版
的表示方式包含指数位,导致其取值范围远大于 int 。根据以上计算, float 可表示的最大正数为 2254−127 × (2 − 2−23) ≈ 3.4 × 1038 ,切换符号位便可得到最小负数。 尽管浮点数 float 扩展了取值范围,但其副作用是牺牲了精度。整数类型 int 将全部 32 比特用于表示数字, 数字是均匀分布的;而由于指数位的存在,浮点数 float 的数值越大,相邻两个数字之间的差值就会趋向越 大。 换行符和制表符)。 图 3‑6 ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的 EASCII 字符集。它 在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 1980 年发布了 GB2312 字符集,其收录了 6763 个汉字,基本满足了汉字的 计算机处理需要。 然而,GB2312 无法处理部分罕见字和繁体字。GBK 字符集是在 GB2312 的基础上扩展得到的,它共收录了 21886 个汉字。在 GBK 的编码方案中,ASCII 字符使用一个字节表示,汉字使用两个字节表示。 第 3 章 数据结构 hello‑algo.com 61 3.4.30 码力 | 379 页 | 18.47 MB | 1 年前3Hello 算法 1.0.0 C++版
的表示方式包含指数位,导致其取值范围远大于 int 。根据以上计算, float 可表示的最大正数为 2254−127 × (2 − 2−23) ≈ 3.4 × 1038 ,切换符号位便可得到最小负数。 尽管浮点数 float 扩展了取值范围,但其副作用是牺牲了精度。整数类型 int 将全部 32 比特用于表示数字, 数字是均匀分布的;而由于指数位的存在,浮点数 float 的数值越大,相邻两个数字之间的差值就会趋向越 大。 (如换行符和制表符)。 图 3‑6 ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的「EASCII」字符 集。它在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 1980 年发布了「GB2312」字符集,其收录了 6763 个汉字,基本满足了汉 字的计算机处理需要。 然而,GB2312 无法处理部分罕见字和繁体字。「GBK」字符集是在 GB2312 的基础上扩展得到的,它共收录 了 21886 个汉字。在 GBK 的编码方案中,ASCII 字符使用一个字节表示,汉字使用两个字节表示。 第 3 章 数据结构 hello‑algo.com 61 3.4.30 码力 | 378 页 | 17.59 MB | 1 年前3Hello 算法 1.0.0b4 C++版
的表示方式包含指数位,导致其取值范围远大于 int 。根据以上计算, float 可表示的最大正数为 2254−127 × (2 − 2−23) ≈ 3.4 × 1038 ,切换符号位便可得到最小负数。 尽管浮点数 float 扩展了取值范围,但其副作用是牺牲了精度。整数类型 int 将全部 32 位用于表示数字,数 字是均匀分布的;而由于指数位的存在,浮点数 float 的数值越大,相邻两个数字之间的差值就会趋向越 大。 符号,以及一些控制字符(如换行符和制表符)。 Figure 3‑6. ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的字符集「EASCII」。 它在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。在世界范围内,陆续出现了一批适用于 不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应 用的就有几千个。中国国家标准总局于 1980 年发布了「GB2312」字符集,其收录了 6763 个汉字,基本满 足了汉字的计算机处理需要。 然而,GB2312 无法处理部分的罕见字和繁体字。之后在 GB2312 的基础上,扩展得到了「GBK」字符集,它 共收录了 21886 个汉字。在 GBK 编码方案中,ASCII 字符使用一个字节表示,汉字使用两个字节表示。 3. 数据结构 hello‑algo.com 46 30 码力 | 343 页 | 27.39 MB | 1 年前3Hello 算法 1.2.0 简体中文 C++ 版
的表示方式包含指数位,导致其取值范围远大于 int 。根据以上计算, float 可表示的最大正数为 2254−127 × (2 − 2−23) ≈ 3.4 × 1038 ,切换符号位便可得到最小负数。 尽管浮点数 float 扩展了取值范围,但其副作用是牺牲了精度。整数类型 int 将全部 32 比特用于表示数字, 数字是均匀分布的;而由于指数位的存在,浮点数 float 的数值越大,相邻两个数字之间的差值就会趋向越 大。 换行符和制表符)。 图 3‑6 ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的 EASCII 字符集。它 在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 1980 年发布了 GB2312 字符集,其收录了 6763 个汉字,基本满足了汉字的 计算机处理需要。 然而,GB2312 无法处理部分罕见字和繁体字。GBK 字符集是在 GB2312 的基础上扩展得到的,它共收录了 21886 个汉字。在 GBK 的编码方案中,ASCII 字符使用一个字节表示,汉字使用两个字节表示。 第 3 章 数据结构 www.hello‑algo.com 61 30 码力 | 379 页 | 18.48 MB | 9 月前3Hello 算法 1.0.0b5 C++版
的表示方式包含指数位,导致其取值范围远大于 int 。根据以上计算, float 可表示的最大正数为 2254−127 × (2 − 2−23) ≈ 3.4 × 1038 ,切换符号位便可得到最小负数。 尽管浮点数 float 扩展了取值范围,但其副作用是牺牲了精度。整数类型 int 将全部 32 位用于表示数字,数 字是均匀分布的;而由于指数位的存在,浮点数 float 的数值越大,相邻两个数字之间的差值就会趋向越 大。 9、一些标点符号,以及一些控制字符(如换行符和制表符)。 图 3‑6 ASCII 码 然而,ASCII 码仅能够表示英文。随着计算机的全球化,诞生了一种能够表示更多语言的字符集「EASCII」。 它在 ASCII 的 7 位基础上扩展到 8 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 1980 年发布了「GB2312」字符集,其收录了 6763 个汉字,基本满足 了汉字的计算机处理需要。 然而,GB2312 无法处理部分的罕见字和繁体字。「GBK」字符集是在 GB2312 的基础上扩展得到的,它共收 录了 21886 个汉字。在 GBK 的编码方案中,ASCII 字符使用一个字节表示,汉字使用两个字节表示。 第 3 章 数据结构 hello‑algo.com 59 3.4.30 码力 | 377 页 | 30.69 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串
std::string 其实是同等 地位的。 • 虽然也可以给 std::string 定义很多个不同的 + 重载,每个针对不同的数字类 型( int 、 float 、 double )排列组合,但是这样没有可扩展性,而且影响编 译速度。 • 所以 cpp 说,你必须手动把 42 先转换为字符串,然后再和已有的字符串相 加: • “you have ” + std::to_string(42) + “ yuan” 字符串流 第 5 章 那 to_string 能不能指定十六进制? • 很遗憾, to_string 是个缓解“键盘压力”的帮手函数,功能根本不全。 • 用 + 来拼接字符串也只是初学者的做法,他们并不是专业的字符串格式化工 具。 • 想要完整的功能(指定多少进制,左右对齐等),可以用专业的做法: 1. 古代 C 语言的 sprintf 2. 古代 C++ 的 stringstream 3 总结: • << 可以模仿 cout ,取代 to_string 。 • >> 可以模仿 cin ,取代 stoi/stof/stod 。 • 最重要的是他支持各种控制选项(如 hex ), 功能性比 to_string 和 stoi 更强大。 • 要导入他,只需 #include即可。 字符串常用操作 第 6 章 at 获取指定位置的字符 • s.at(i) 和 0 码力 | 162 页 | 40.20 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南
古代 CMake 指的是 CMake 2.x 。 • 通过互联网和学校课程,许多人认识的 CMake 都是古代 CMake 。 • 现代 CMake 和古代 CMake 相比,使用 更方便,功能更强大。 为什么要学习现代 CMake ? 现代 CMake : 古代 CMake : 第 0 章:命令行小技巧 传统的 CMake 软件构建 / 安装方式 • mkdir build 另一种方式:先创建目标,稍后再添加源文件 如果有多个源文件呢? 逐个添加即可 使用变量来存储 建议把头文件也加上,这样在 VS 里可以出现在“ Header Files” 一栏 使用 GLOB 自动查找当前目录下指定扩展名的文件,实现批量添加源文件 启用 CONFIGURE_DEPENDS 选项,当添加新文件时,自动更新变量 如果源码放在子文件夹里怎么办? 必须把路径名和后缀名的排列组合全部写出来吗?感觉好麻烦 标准: CMAKE_CXX_STANDARD 变量 • CMAKE_CXX_EXTENSIONS 也是 BOOL 类型,默认为 ON 。设为 ON 表示启用 GCC 特有的一些扩展功能; OFF 则关闭 GCC 的扩展功能,只使用标准的 C++ 。 • 要兼容其他编译器(如 MSVC )的项目,都会设为 OFF 防止不小心用了 GCC 才有的 特性。 • 此外,最好是在 project 指令前设置0 码力 | 166 页 | 6.54 MB | 1 年前3Hello 算法 1.0.0b2 C++版
长度无法扩展。而若 希望扩容数组,则需新建一个数组,然后把原数组元素依次拷贝到新数组,在数组很大的情况下,这是非常耗 时的。 4. 数组与链表 hello‑algo.com 46 // === File: array.cpp === /* 扩展数组长度 */ int* extend(int* nums, int size, int enlarge) { // 初始化一个扩展长度后的数组 将原数组中的所有元素复制到新数组 for (int i = 0; i < size; i++) { res[i] = nums[i]; } // 释放内存 delete[] nums; // 返回扩展后的新数组 return res; } 数组中插入或删除元素效率低下。如果我们想要在数组中间插入一个元素,由于数组元素在内存中是“紧挨着 的”,它们之间没有空间再放任何数据。因此,我们不得不 淘宝订单。购物者下单后,订单就被加入到队列之中,随后系统再根据顺序依次处理队列中的订单。在 双十一时,在短时间内会产生海量的订单,如何处理「高并发」则是工程师们需要重点思考的问题。 ‧ 各种待办事项。任何需要实现“先来后到”的功能,例如打印机的任务队列、餐厅的出餐队列等等。 5.3. 双向队列 对于队列,我们只能在头部删除或在尾部添加元素,而「双向队列 Deque」更加灵活,在其头部和尾部都能 执行元素添加或删除操作。0 码力 | 197 页 | 15.72 MB | 1 年前3Hello 算法 1.0.0b1 C++版
长度无法扩展。而若 希望扩容数组,则需新建一个数组,然后把原数组元素依次拷贝到新数组,在数组很大的情况下,这是非常耗 时的。 4. 数组与链表 hello‑algo.com 46 // === File: array.cpp === /* 扩展数组长度 */ int* extend(int* nums, int size, int enlarge) { // 初始化一个扩展长度后的数组 将原数组中的所有元素复制到新数组 for (int i = 0; i < size; i++) { res[i] = nums[i]; } // 释放内存 delete[] nums; // 返回扩展后的新数组 return res; } 数组中插入或删除元素效率低下。如果我们想要在数组中间插入一个元素,由于数组元素在内存中是“紧挨着 的”,它们之间没有空间再放任何数据。因此,我们不得不 淘宝订单。购物者下单后,订单就被加入到队列之中,随后系统再根据顺序依次处理队列中的订单。在 双十一时,在短时间内会产生海量的订单,如何处理「高并发」则是工程师们需要重点思考的问题。 ‧ 各种待办事项。任何需要实现“先来后到”的功能,例如打印机的任务队列、餐厅的出餐队列等等。 5.3. 双向队列 对于队列,我们只能在头部删除或在尾部添加元素,而「双向队列 Deque」更加灵活,在其头部和尾部都能 执行元素添加或删除操作。0 码力 | 187 页 | 14.71 MB | 1 年前3
共 27 条
- 1
- 2
- 3