C++入门经典(第3版) 答案 C++入门经典(第3版)
2022-12-07 21:09:54 322KB C++入门经典(第3版) C++
1
本书是为从未进行i O S 开发,但使用过M a c i n t o s h 平台的读者编写的,读者不需要有 Swift、Cocoa和Apple开发工具方面的经验。当然,读者如果有一定的开发经验,将更容易 掌握这些工具和技术。 虽然如此,本书对读者还是有一定的要求。具体地说,读者必须愿意花时间学习、如果 读者只是阅读每章的内容,而不完成其中的项目,很可能错过一些重要概念。另外,读者还 需花时间阅读Apple开发文档,并研究本书介绍的主题。有关iOS开发的信息浩如烟海,但 本书的篇幅有限,只能为您打下坚实的iOS开发基础
2022-12-01 15:58:01 130.37MB ios swift
1
算法入门经典,很好的一本书。仅供学习使用 ,支持正版
2022-11-10 11:50:38 9.26MB 算法 入门经典
1
C++17 入门经典 第5版 例子源代码和习题答案. 非常好的资源,目前是网上独一无二。
2022-11-09 13:43:30 525KB C++
1
VB.NET入门经典(第三版)的配套原代码,安章节分。
2022-10-31 21:55:57 1.8MB VB.NET
1
《PHP、MySQL和Apache入门经典(第5版)人民邮电出版》配套光盘的code目录(源码).rar 入门经典学习的源代码。 简单实用。 我都经常翻出来慢慢消化。
2022-10-23 12:51:08 111KB PHP MySQL Apache 入门经典
1
《C#入门经典》系列是屡获殊荣的C#名著和超级畅销书。新版的 C#入门经典(第7版) C# 6.0 & Visual Studio2015 全面介绍使用C# 6和.NET Framework编写程序的基础知识,是编程新手的理想读物。这本分步讲解的实用教程从基本的面向对象编程讲起,浓墨重彩地描述初学者常用的工具,不要求读者具有任何编程经验。紧贴实用的示例使用Visual Studio 2015中的C#环境,涵盖微软为使C#更好兼容其他编程语言所做的新改进。本书呈现微软资深开发人员的专家级建议,将指导初学者立即上手编写Windows和Web应用程序。这是一本成就无数C#程序员的经典名著,厚而不“重”,可帮助您轻松掌握C#的各种编程知识,为您的职业生涯打下坚实的基础,《C#入门经典》自第1版出版以来,全球销量已经达数万册,在中国也有近8万册的销量,已经成为广大初级C#程序员首选的入门教程,也是目前国内市场上最畅销的C#专业店销书,曾两次被CSDN、《程序员》等机构和读者评选为“最受读者喜爱的十大技术开发类图书”!第4版面向C#2008和.NET 3.5 继续完善原有内容,同时全面介绍.NET的最新技术和特性。
2022-10-21 13:29:43 52.3MB C#入门经典
1
算法竞赛入门经典(第二版) (算法艺术与信息学竞赛) 刘汝佳 pdf格式 文字版 有书签目录 完整版 清华大学出版社 内容简介 · · · · · · 《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。全书内容分为12 章,包括程序设计入门、循环结构程序设计、数组和字符串、函数和递归、C++与STL入门、数据结构基础、暴力求解法、高效算法设计、动态规划初步、数学概念与方法、图论模型与算法、高级专题等内容,覆盖了算法竞赛入门和提高所需的主要知识点,并含有大量例题和习题。书中的代码规范、简洁、易懂,不仅能帮助读者理解算法原理,还能教会读者很多实用的编程技巧;书中包含的各种开发、测试和调试技巧也是传统的语言、算法类书籍中难以见到的。 《算法竞赛入门经典(第2版)》可作为全国青少年信息学奥林匹克联赛(NOIP)复赛教材、全国青少年信息学奥林匹克竞赛(NOI)和ACM国际大学生程序设计竞赛(ACM/ICPC)的训练资料,也可作为IT工程师与科研人员的参考用书。 目录 · · · · · · 第1部分 语言篇 第1章 程序设计入门 1 1.1 算术表达式 1 1.2 变量及其输入 3 1.3 顺序结构程序设计 6 1.4 分支结构程序设计 9 1.5 注解与习题 13 1.5.1 C语言、C99、C11及其他 13 1.5.2 数据类型与输入格式 14 1.5.3 习题 15 1.5.4 小结 16 第2章 循环结构程序设计 18 2.1 for循环 18 2.2 while循环和do-while循环 22 2.3 循环的代价 25 2.4 算法竞赛中的输入输出框架 27 2.5 注解与习题 34 2.5.1 习题 34 2.5.2 小结 36 第3章 数组和字符串 37 3.1 数组 37 3.2 字符数组 41 3.3 竞赛题目选讲 45 3.4 注解与习题 53 3.4.1 进位制与整数表示 54 3.4.2 思考题 55 3.4.3 黑盒测试和在线评测系统 55 3.4.4 例题一览与习题 56 3.4.5 小结 59 第4章 函数和递归 61 4.1 自定义函数和结构体 61 4.2 函数调用与参数传递 65 4.2.1 形参与实参 65 4.2.2 调用栈 66 4.2.3 用指针作参数 69 4.2.4 初学者易犯的错误 71 4.2.5 数组作为参数和返回值 71 4.2.6 把函数作为函数的参数 73 4.3 递归 74 4.3.1 递归定义 74 4.3.2 递归函数 75 4.3.3 C语言对递归的支持 75 4.3.4 段错误与栈溢出 77 4.4 竞赛题目选讲 79 4.5 注解与习题 92 4.5.1 头文件、副作用及其他 93 4.5.2 例题一览和习题 95 4.5.3 小结 99 第5章  C++与STL入门 100 5.1 从C到C++ 100 5.1.1 C++版框架 101 5.1.2 引用 102 5.1.3 字符串 103 5.1.4 再谈结构体 105 5.1.5 模板 106 5.2 STL初步 108 5.2.1 排序与检索 108 5.2.2 不定长数组:vector 109 5.2.3 集合:set 112 5.2.4 映射:map 113 5.2.5 栈、队列与优先队列 115 5.2.6 测试STL 120 5.3 应用:大整数类 123 5.3.1 大整数类BigInteger 124 5.3.2 四则运算 125 5.3.3 比较运算符 126 5.4 竞赛题目举例 127 5.5 习题 134 第2部分 基础篇 第6章 数据结构基础 139 6.1 再谈栈和队列 139 6.2 链表 143 6.3 树和二叉树 148 6.3.1 二叉树的编号 148 6.3.2 二叉树的层次遍历 150 6.3.3 二叉树的递归遍历 155 6.3.4 非二叉树 160 6.4 图 162 6.4.1 用DFS求连通块 162 6.4.2 用BFS求最短路 164 6.4.3 拓扑排序 167 6.4.4 欧拉回路 168 6.5 竞赛题目选讲 170 6.6 训练参考 175 第7章 暴力求解法 182 7.1 简单枚举 182 7.2 枚举排列 184 7.2.1 生成1~n的排列 184 7.2.2 生成可重集的排列 185 7.2.3 解答树 186 7.2.4 下一个排列 187 7.3 子集生成 188 7.3.1 增量构造法 188 7.3.2 位向量法 188 7.3.3 二进制法 189 7.4 回溯法 191 7.4.1 八皇后问题 191 7.4.2 其他应用举例 194 7.5 路径寻找问题 198 7.6 迭代加深搜索 206 7.7 竞赛题目选讲 209 7.8 训练参考 213 第3部分 竞赛篇 第8章 高效算法设计 220 8.1 算法分析初步 220 8.1.1 渐进时间复杂度 220 8.1.2 上界分析 222 8.1.3 分治法 223 8.1.4 正确对待算法分析结果 224 8.2 再谈排序与检索 225 8.2.1 归并排序 225 8.2.2 快速排序 227 8.2.3 二分查找 227 8.3 递归与分治 229 8.4 贪心法 231 8.4.1 背包相关问题 231 8.4.2 区间相关问题 232 8.4.3 Huffman编码 234 8.5 算法设计与优化策略 235 8.6 竞赛题目选讲 244 8.7 训练参考 252 第9章 动态规划初步 259 9.1 数字三角形 259 9.1.1 问题描述与状态定义 259 9.1.2 记忆化搜索与递推 260 9.2 DAG上的动态规划 262 9.2.1 DAG模型 262 9.2.2 最长路及其字典序 262 9.2.3 固定终点的最长路和最短路 264 9.2.4 小结与应用举例 267 9.3 多阶段决策问题 270 9.3.1 多段图的最短路 270 9.3.2 0-1背包问题 271 9.4 更多经典模型 274 9.4.1 线性结构上的动态规划 274 9.4.2 树上的动态规划 280 9.4.3 复杂状态的动态规划 284 9.5 竞赛题目选讲 290 9.6 训练参考 303 第10章 数学概念与方法 310 10.1 数论初步 310 10.1.1 欧几里德算法和唯一分解定理 310 10.1.2 Eratosthenes筛法 312 10.1.3 扩展欧几里德算法 313 10.1.4 同余与模算术 314 10.1.5 应用举例 316 10.2 计数与概率基础 318 10.2.1 杨辉三角与二项式定理 319 10.2.2 数论中的计数问题 321 10.2.3 编码与解码 323 10.2.4 离散概率初步 324 10.3 其他数学专题 327 10.3.1 递推 327 10.3.2 数学期望 332 10.3.3 连续概率 334 10.4 竞赛题目选讲 336 10.5 训练参考 341 第11章 图论模型与算法 352 11.1 再谈树 352 11.1.1 无根树转有根树 352 11.1.2 表达式树 353 11.2 最小生成树 355 11.2.1 Kruskal算法 356 11.2.2 竞赛题目选解 358 11.3 最短路问题 359 11.3.1 Dijkstra算法 359 11.3.2 Bellman-Ford算法 363 11.3.3 Floyd算法 364 11.3.4 竞赛题目选讲 365 11.4 网络流初步 366 11.4.1 最大流问题 366 11.4.2 增广路算法 367 11.4.3 最小割最大流定理 369 11.4.4 最小费用最大流问题 370 11.4.5 应用举例 372 11.5 竞赛题目选讲 375 11.6 训练参考 379 11.7 总结与展望 384 第12章 高级专题 386 12.1 知识点选讲 386 12.1.1 自动机 386 12.1.2 树的经典问题和方法 392 12.1.3 可持久化数据结构 397 12.1.4 多边形的布尔运算 399 12.2 难题选解 404 12.2.1 数据结构 404 12.2.2 网络流 409 12.2.3 数学 411 12.2.4 几何 415 12.2.5 非完美算法 419 12.2.6 杂题选讲 423 12.3 小结与习题 446 附录A 开发环境与方法 455 A.1 命令行 455 A.1.1 文件系统 455 A.1.2 进程 456 A.1.3 程序的执行 456 A.1.4 重定向和管道 457 A.1.5 常见命令 457 A.2 操作系统脚本编程入门 458 A.2.1 Windows下的批处理 458 A.2.2 Linux下的Bash脚本 459 A.2.3 再谈随机数 460 A.3 编译器和调试器 460 A.3.1 gcc的安装和测试 460 A.3.2 常见编译选项 461 A.3.3 gdb简介 462 A.3.4 gdb的高级功能 463 A.4 浅谈IDE 464 主要参考书目 465
2022-10-08 08:59:28 9.28MB 文字版 有书签目录 刘汝佳 算法
1
C++入门经典(第3版),原名《Ivor Horton’s Beginning ANSI C++: The Complete Language, Third Edition》,作者:【美】Ivor Horton,翻译:李予敏。出版社:清华大学出版社,ISBN:7302120625。PDF格式,大小 18MB。 内容简介:   c++在几乎所有的计算环境中都非常普及,而且可以用于几乎所有的应用程序。c++从c中继承了过程化编程的高效性,并集成了面向对象编程的功能。c++在其标准库中提供了大量的功能。有许多商业c++库支持数量众多的操作系统环境和专业应用程序。但因为它的内容太多了,所以掌握c++并不十分容易。本书详述了c++语言的各个方面,包括数据类型、程序控制、函数、指针、调试、类、重载、继承、多态性、模板、异常和输入输出等内容。每一章都以前述内容为基础,每个关键点都用具体的示例进行详细的讲解。   本书基本不需要读者具备任何c++知识,书中包含了理解c++的所有必要知识,读者可以从头开始编写自己的c++程序。本书也适合于具备另一种语言编程经验但希望全面掌握c++语言的读者。    c++是一个内涵丰富、功能强大的语言,这就是许多专业人士选择它的原因。初学者常常发现c++比其他语言难懂,这也许是因为它的功能和适用范围比较复杂。但是,c++并不比其他语言难学,只是内容比其他语言多一些而已。   本书的宗旨是尽可能使c++容易理解和掌握,读者不需要有任何编程知识或经验,基本上,只要对编程有所了解,即可从本书中学到有关编程的所有知识。在本书中,每个c++语言特性都用具体的例子来说明,通过每章最后的练习还可以测试自己对所学知识的掌握情况。读者还可以通过例子学习和理解c++的更高级特性,这些例子不仅展示了这些特性的工作方式,还说明了它们采用这种方式的原因。每一章都建立在前面章节内容的基础之上,读者可以循序渐进地提高c++编程技巧和使用c++语言的信心。   尽管c++学起来不是很难,但也不简单。对于初学者,必须认真阅读本书超过800页的内容!只要端正学习编程的态度,付出一定的努力,读者一定能利用本书成为一位有竞争力的c++程序员。要学习的内容很多,但得到的乐趣也很多。读者一定能体会到掌握一门目前功能最强大的编程语言的成就感。 内容预览: 第1章 基本概念 1 1.1 编程语言 1 1.1.1 编程语言简史 1 1.1.2 解释性程序和编译性程序的执行过程 2 1.1.3 库 3 1.2 c++是一种强大的语言 3 1.3 一个简单的c++程序 4 1.3.1 名称 6 1.3.2 命名空间 7 1.4 关键字 9 1.5 c++语句和语句块 9 1.6 程序结构 10 1.7 从源文件中创建可执行文件 12 1.7.1 编译 12 1.7.2 链接 13 1.8 c++源字符 14 1.8.1 通用字符集 15 1.8.2 三字符序列 15 1.8.3 转义序列 16 1.8.4 语句中的空白 18 .1.9 程序的注释 19 1.10 标准库 20 1.11 用c++编程 21 1.12 本章小结 22 1.13 练习 23 第2章 基本数据类型和计算 24 2.1 数据和数据类型 24 2.2 进行简单的计算 24 2.2.1 字面量 25 2.2.2 整型字面量 25 2.2.3 整数的算术运算 27 2.2.4 运算符的优先级和相关性 30 2.3 使用变量 32 2.4 整型变量 33 2.4.1 整型变量类型 35 2.4.2 整数的取值范围 37 2.4.3 整型字面量的类型 38 2.5 赋值运算符 39 2.5.1 多次赋值 40 2.5.2 修改变量的值 40 2.6 整数的递增和递减 42 2.7 const关键字 44 2.8 整数的数字函数 45 2.9 浮点数 49 2.9.1 浮点数的数据类型 49 2.9.2 浮点数的操作 51 2.9.3 使用浮点数值 53 2.9.4 数值函数 55 2.10 使用字符 57 2.10.1 字符字面量 57 2.10.2 初始化char变量 58 2.10.3 使用扩展字符集 60 2.11 初始值的函数表示法 62 2.12 本章小结 62 2.13 练习 63 第3章 处理基本数据类型 64 3.1 混合的表达式 64 3.1.1 赋值和不同的类型 65 3.1.2 显式强制转换 66 3.1.3 老式的强制转换 68 3.2 确定类型 70 3.3 按位运算符 73 3.3.1 移位运算符 74 3.3.2 位模式下的逻辑运算 76 3.4 枚举数据类型 85 3.4.1 匿名枚举 86 3.4.2 在整型和枚举类型之间强制转换 87 3.5 数据类型的同义词 89 3.6 变量的生存期 90 3.6.1 自动变量 90 3.6.2 定位变量的声明 92 3.6.3 全局变量 92 3.6.4 静态变量 95 3.7 特殊的类型修饰符 96 3.8 声明外部变量 96 3.9 优先级和相关性 96 3.10 本章小结 97 3.11 练习 98 第4章 选择和决策 99 4.1 比较数据值 99 4.1.1 应用比较运算符 100 4.1.2 比较浮点数值 102 4.2 if语句 102 4.3 if-else语句 110 4.4 逻辑运算符 114 4.4.1 逻辑与运算符 115 4.4.2 逻辑或运算符 115 4.4.3 逻辑非运算符 115 4.5 条件运算符 118 4.6 switch语句 120 4.7 无条件分支 124 4.8 决策语句块和变量作用域 125 4.9 本章小结 126 4.10 练习 126 第5章 循环 127 5.1 理解循环 127 5.2 while循环 128 5.3 do-while循环 130 5.4 for循环 133 5.4.1 循环和变量作用域 135 5.4.2 用浮点数值控制for循环 137 5.4.3 使用更复杂的循环控制表达式 140 5.5 嵌套的循环 143 5.6 跳过循环迭代 147 5.7 循环的中断 150 5.8 本章小结 155 5.9 练习 155 第6章 数组和字符串 156 6.1 数据数组 156 6.1.1 使用数组 156 6.1.2 初始化数组 161 6.1.3 字符数组 164 6.2 多维数组 168 6.2.1 初始化多维数组 170 6.2.2 多维字符数组 172 6.3 string类型 174 6.3.1 声明string对象 175 6.3.2 使用string对象 177 6.3.3 访问字符串中的字符 179 6.3.4 访问子字符串 182 6.3.5 比较字符串 182 6.3.6 搜索字符串 188 6.3.7 修改字符串 196 6.4 string类型的数组 201 6.5 宽字符的字符串 202 6.6 本章小结 202 6.7 练习 203 第7章 指针 204 7.1 什么是指针 204 7.2 指针的声明 205 7.3 指针的初始化 210 7.4 常量指针和指向常量的指针 220 7.5 指针和数组 221 7.5.1 指针的算术运算 221 7.5.2 使用数组名的指针表示法 224 7.5.3 对多维数组使用指针 227 7.5.4 c样式字符串的操作 229 7.6 动态内存分配 231 7.6.1 自由存储区 232 7.6.2 运算符new和delete 232 7.6.3 数组的动态内存分配 233 7.6.4 动态内存分配的危险 235 7.6.5 转换指针 241 7.7 本章小结 241 7.8 练习 242 第8章 使用函数编程 243 8.1 程序的分解 243 8.2 理解函数 245 8.2.1 定义函数 245 8.2.2 函数的声明 249 8.3 给函数传送参数 251 8.3.1 按值传送机制 251 8.3.2 按引用传送机制 260 8.3.3 main()的参数 264 8.4 默认的参数值 265 8.5 从函数中返回值 268 8.5.1 返回一个指针 268 8.5.2 返回一个引用 272 8.5.3 从函数中返回新变量 273 8.6 内联函数 273 8.7 静态变量 273 8.8 本章小结 276 8.9 练习 276 第9章 函数 278 9.1 函数的重载 278 9.1.1 函数的签名 278 9.1.2 重载和指针参数 281 9.1.3 重载和引用参数 281 9.1.4 重载和const参数 283 9.1.5 重载和默认参数值 284 9.2 函数模板 285 9.2.1 创建函数模板的实例 286 9.2.2 显式指定模板参数 288 9.2.3 模板的说明 289 9.2.4 函数模板和重载 291 9.2.5 带有多个参数的模板 292 9.3 函数指针 293 9.3.1 声明函数指针 294 9.3.2 把函数作为参数传送 297 9.3.3 函数指针的数组 299 9.4 递归 299 9.5 本章小结 307 9.6 练习 307 第10章 程序文件和预处理器指令 309 10.1 使用程序文件 309 10.1.1 名称的作用域 310 10.1.2 “一个定义”规则 312 10.1.3 程序文件和链接 313 10.1.4 外部名称 314 10.2 命名空间 318 10.2.1 全局命名空间 319 10.2.2 定义命名空间 319 10.2.3 使用using声明 322 10.2.4 函数和命名空间 322 10.2.5 函数模板和命名空间 326 10.2.6 扩展命名空间 327 10.2.7 未指定名称的命名空间 330 10.2.8 命名空间的别名 331 10.2.9 嵌套的命名空间 331 10.3 预处理器 332 10.3.1 在程序中包含头文件 333 10.3.2 程序中的置换 334 10.3.3 宏置换 336 10.3.4 放在多行代码中的预处理器指令 338 10.3.5 把字符串作为宏参数 339 10.3.6 在宏表达式中连接参数 340 10.4 逻辑预处理器指令 340 10.4.1 逻辑#if指令 341 10.4.2 测试特定值的指令 343 10.4.3 多个代码选择块 343 10.4.4 标准的预处理器宏 344 10.4.5 #error和#pragma指令 345 10.5 调试方法 346 10.5.1 集成调试器 346 10.5.2 调试中的预处理器指令 347 10.5.3 使用assert宏 353 10.6 本章小结 354 10.7 练习 355 第11章 创建自己的数据类型 356 11.1 对象的概念 356 11.2 c++中的结构 357 11.2.1 理解结构 357 11.2.2 定义结构类型 358 11.2.3 创建结构类型的对象 360 11.2.4 访问结构对象的成员 360 11.2.5 对结构使用指针 366 11.3 联合 370 11.3.1 声明联合 371 11.3.2 匿名联合 372 11.4 更复杂的结构 373 11.5 本章小结 379 11.6 练习 380 第12章 类 381 12.1 类和面向对象编程 381 12.1.1 封装 382 12.1.2 继承 383 12.1.3 多态性 384 12.1.4 术语 385 12.2 定义类 385 12.3 构造函数 388 12.3.1 把构造函数的定义放在类的外部 390 12.3.2 默认的构造函数 392 12.3.3 默认的初始化值 395 12.3.4 在构造函数中使用初始化列表 396 12.3.5 使用explicit关键字 397 12.4 类的私有成员 398 12.4.1 访问私有类成员 402 12.4.2 默认的副本构造函数 404 12.5 友元 405 12.5.1 类的友元函数 405 12.5.2 友元类 408 12.6 this指针 409 12.7 const对象和const成员函数 413 12.7.1 类中的mutable数据成员 415 12.7.2 常量的强制转换 416 12.8 类的对象数组 416 12.9 类对象的大小 419 12.10 类的静态成员 421 12.10.1 类的静态数据成员 421 12.10.2 类的静态成员函数 426 12.11 本章小结 427 12.12 练习 428 第13章 类的操作 429 13.1 类对象的指针和引用 429 13.2 指针作为数据成员 430 13.2.1 定义package类 431 13.2.2 定义truckload类 434 13.2.3 实现truckload类 435 13.3 控制对类的访问 443 13.4 副本构造函数的重要性 445 13.5 对象内部的动态内存分配 453 13.5.1 析构函数 453 13.5.2 定义析构函数 453 13.5.3 默认的析构函数 454 13.5.4 实现析构函数 456 13.6 类的引用 457 13.7 本章小结 459 13.8 练习 460 第14章 运算符重载 461 14.1 为自己的类实现运算符 461 14.1.1 运算符重载 461 14.1.2 可以重载的运算符 462 14.1.3 实现重载运算符 462 14.1.4 全局运算符函数 466 14.1.5 提供对运算符的全部支持 466 14.1.6 运算符函数术语 470 14.1.7 重载赋值运算符 470 14.1.8 重载算术运算符 477 14.1.9 重载下标运算符 482 14.1.10 重载类型转换 489 14.1.11 重载递增和递减运算符 490 14.1.12 智能指针 491 14.1.13 重载运算符new和delete 497 14.2 本章小结 497 14.3 练习 498 第15章 继承 499 15.1 类和面向对象编程 499 15.2 类的继承 500 15.2.1 继承和聚合 501 15.2.2 从基类中派生新类 502 15.3 继承下的访问控制 505 15.4 把类的成员声明为protected 508 15.5 派生类成员的访问级别 510 15.5.1 在类层次结构中使用访问指定符 511 15.5.2 改变继承成员的访问指定符 512 15.6 派生类中的构造函数操作 514 15.7 继承中的析构函数 520 15.8 重复的成员名 522 15.9 多重继承 524 15.9.1 多个基类 524 15.9.2 继承成员的模糊性 526 15.9.3 重复的继承 531 15.9.4 虚基类 532 15.10 在相关的类类型之间转换 533 15.11 本章小结 534 15.12 练习 534 第16章 虚函数和多态性 536 16.1 理解多态性 536 16.1.1 使用基类指针 536 16.1.2 调用继承的函数 538 16.1.3 虚函数 542 16.1.4 虚函数中的默认参数值 549 16.1.5 通过引用来调用虚函数 553 16.1.6 调用虚函数的基类版本 554 16.1.7 在指针和类对象之间转换 555 16.1.8 动态强制转换 557 16.2 多态性的成本 559 16.3 纯虚函数 560 16.3.1 抽象类 560 16.3.2 间接的抽象基类 563 16.4 通过指针释放对象 566 16.5 在运行期间标识类型 569 16.6 类成员的指针 570 16.6.1 数据成员指针 570 16.6.2 成员函数指针 574 16.7 本章小结 578 16.8 练习 578 第17章 程序错误和异常处理 580 17.1 处理错误 580 17.2 理解异常 581 17.2.1 抛出异常 581 17.2.2 导致抛出异常的代码 586 17.2.3 嵌套的try块 588 17.3 用类对象作为异常 591 17.3.1 匹配catch处理程序和异常 592 17.3.2 用基类处理程序捕获派生类异常 596 17.3.3 重新抛出异常 598 17.3.4 捕获所有的异常 601 17.4 抛出异常的函数 603 17.4.1 函数try块 603 17.4.2 在构造函数中抛出异常 605 17.4.3 异常和析构函数 606 17.5 标准库异常 606 17.5.1 标准库异常类 607 17.5.2 使用标准异常 608 17.6 本章小结 609 17.7 练习 610 第18章 类模板 611 18.1 理解类模板 611 18.2 定义类模板 612 18.2.1 模板参数 613 18.2.2 简单的类模板 613 18.2.3 创建类模板的实例 617 18.2.4 类模板的静态成员 625 18.2.5 非类型的类模板参数 625 18.2.6 非类型参数示例 626 18.2.7 默认的模板参数值 636 18.3 模板的显式实例化 636 18.4 类模板的友元 637 18.5 特殊情形 638 18.6 带有嵌套类的类模板 640 18.7 更高级的类模板 648 18.8 本章小结 649 18.9 练习 649 第19章 输入输出操作 651 19.1 c++中的输入输出 651 19.1.1 理解流 651 19.1.2 使用流的优点 652 19.2 流类 653 19.2.1 标准流 654 19.2.2 流的插入和提取操作 655 19.2.3 流操纵程序 657 19.3 文件流 659 19.3.1 写入文件 659 19.3.2 读取文件 662 19.3.3 设置文件打开模式 664 19.4 未格式化的流操作 672 19.4.1 未格式化的流输入函数 673 19.4.2 未格式化的流输出函数 674 19.5 流输入输出中的错误 675 19.6 使用二进制模式流操作 677 19.7 对流的读写操作 685 19.8 字符串流 692 19.9 对象和流 693 19.9.1 重载类对象的插入运算符 693 19.9.2 重载类对象的提取运算符 696 19.9.3 流中更复杂的对象 698 19.10 本章小结 710 19.11 练习 710 第20章 标准模板库 711 20.1 stl架构简介 711 20.1.1 stl组件 711 20.1.2 stl头文件 716 20.2 使用vector容器 717 20.2.1 创建vector容器 717 20.2.2 访问vector容器中的元素 720 20.2.3 vector容器的基本操作 722 20.2.4 使用vector容器进行数组操作 726 20.2.5 使用输入流迭代器 730 20.3 创建自己的迭代器 734 20.3.1 给算法传送迭代器 736 20.3.2 stl迭代器类型的要求 738 20.3.3 stl迭代器成员函数的要求 740 20.3.4 插入迭代器 744 20.4 list容器 745 20.4.1 创建list容器 746 20.4.2 访问list容器中的元素 747 20.4.3 list容器上的操作 747 20.5 关联map容器 753 20.6 性能和规范 761 20.7 本章小结 763 20.8 练习 763 附录a ascii码 764 附录b c++关键字 768 附录c 标准库头文件 769 附录d 运算符的优先级和相关性 774 附录e 理解二进制和十六进制数 777 附录f 项目示例 783
2022-09-27 16:37:55 18.21MB C++ C++入门 C++入门经典 C++经典
1
《算法竞赛入门经典:训练指南》是《算法竞赛入门经典》的重要补充,旨在补充原书中没有涉及或者讲解得不够详细的内容,从而构建一个较完整的知识体系,并且用大量有针对性的题目,让抽象复杂的算法和数学具体化、实用化。《算法竞赛入门经典:训练指南》共6章,分别为算法设计基础、数学基础、实用数据结构、几何问题、图论算法与模型和更多算法专题,全书通过近200道例题深入浅出地介绍了上述领域的各个知识点、经典思维方式以及程序实现的常见方法和技巧,并在章末和附录中给出了丰富的分类习题,供读者查漏补缺和强化学习效果。
2022-09-13 15:56:26 11.11MB C语言 上机
1