下载 >  开发技术 >  C++ > C++ STL标准程序库开发指南-第2版-高清-完整目录-2013年5月

C++ STL标准程序库开发指南-第2版-高清-完整目录-2013年5月

C++ STL标准程序库开发指南-第2版-高清-完整目录-2013年5月
2018-04-16 上传大小:86.27MB
想读
分享
收藏 (1) 举报
C++标准程序库-侯杰等译 高清简体中文原版.docx

C++标准程序库-侯杰 简体原版,软件将繁体版word中在word中繁体转简体 所以部分有错误,但不影响阅读

立即下载
C++标准程序库(中文简体完整版)(扫描版)

书名:C++标准程序库 作者:Nicolai M.Josuttis 译者:侯俊杰 孟岩

立即下载
c++标准程序库(清晰可编辑版全).pdf

c++标准程序库(清晰可编辑版全)~~~~~~~~~~

立即下载
C++ STL标准程序库开发指南(第2版).闫常友(带详细书签).pdf

本书力求将C++ STL所涉及问题一一列出并结合实例详细阐述,同时融入作者多年实践经验,目的只有一个:让读者做到快捷开发,少走弯路。 本书献给喜欢C++ STL的朋友,当您看见这本书时您应该对C++ STL已有一定的了解,希望继续深造;或者您已经暗下决心来学习它。那么本书将是您*的选择。如果您已经有了一些C/C++基础,那么学习起来会更加轻松。 第1章 类模板简介 1 1.1 C++为什么需要模板功能 1 1.1.1 计算机实在是太傻了 1 1.1.2 类和函数重载部分解决了这个问题 2 1.1.3 泛型编程完美思路 2 1.1.4 C++的模板 3 1.1.5 C++ STL的渊源 3 1.2 C++基本概念通览 4 1.2.1 命名空间 4 1.2.2 头文件 5 1.2.3 面向对象的程序设计 6 1.2.4 C++中的声明和定义 8 1.2.5 最简单的C++程序 10 1.2.6 指针 12 1.2.7 函数 13 1.2.8 文件 17 1.2.9 程序的编译和链接 20 1.2.10 程序的启动和终止 21 1.2.11 异常处理 21 1.3 类模板定义 21 1.3.1 模板库(STL) 22 1.3.2 STL之父—Alexander Stepanov 22 1.3.3 类模板的英文原始定义 22 1.3.4 类模板实例化 22 1.3.5 类模板的成员函数 24 1.3.6 类模板的静态数据成员 24 1.4 成员模板 26 1.5 友元模板 27 1.6 函数模板 28 1.7 类模板的参数 31 1.7.1 关键字typename的使用 32 1.7.2 关键字typename与关键字class 33 1.8 模板库简介 34 1.8.1 C语言和STL的演变历史 34 1.8.2 STL的组件 34 1.8.3 STL的基本结构 35 1.8.4 STL的编程概述 38 1.8.5 学习重点提示 40 1.9 本章小结 40 第2章 C++中的字符串 41 2.1 字符串库简述 41 2.2 字符的特点 42 2.3 字符串类模板(basic_string模板类) 43 2.4 字符串操作的通用函数 44 2.4.1 构造器和析构器 45 2.4.2 大小和容量 46 2.4.3 元素存取(访问) 47 2.4.4 字符串比较 49 2.4.5 字符串内容修改和替换 51 2.4.6 字符串连接 57 2.4.7 字符串I/O操作 57 2.4.8 字符串的搜索和查找 58 2.4.9 字符串对迭代器的支持 62 2.4.10 字符串对配置器的支持 63 2.5 本章小结 64 第3章 容器 65 3.1 容器的概念 65 3.1.1 容器成员和函数 65 3.1.2 容器的种类和数据结构 66 3.2 序列式容器概述 67 3.3 序列式容器——vector类模板 68 3.3.1 vector类基础 68 3.3.2 vector类的成员函数 72 3.3.3 vector高级编程 76 3.4 序列式容器——list类模板 84 3.4.1 list的定义和容量 85 3.4.2 list容器基础成员函数 90 3.4.3 运算符函数 94 3.4.4 其他重要成员函数 96 3.5 序列式容器——deque(双端队列)类模板 102 3.5.1 容器deque和容器vector的对比 102 3.5.2 容器deque的定义和容量 103 3.5.3 deque容器基础成员函数 104 3.5.4 deque容器的高级编程 107 3.5.5 deque的模板函数 109 3.6 关联式容器概述 110 3.7 关联式容器——set/multiset类模板 110 3.7.1 集合set的定义 110 3.7.2 set和multiset的容量、搜寻和统计 113 3.7.3 set和multiset的迭代器相关函数和赋值函数 116 3.7.4 set和multiset的插入和移除 118 3.7.5 set和multiset的比较运算符 120 3.8 关联式容器——map/multimap类模板 121 3.8.1 map和multimap基础 122 3.8.2 map和multimap成员函数 126 3.8.3 map和multimap的高级编程 128 3.9 特殊容器用法 136 3.9.1 bitset类模板 136 3.9.2 stack类模板 139 3.9.3 队列queue类模板 141 3.9.4 Priority Queues类模板 144 3.10 本章小结 146 第4章 C++中的算法 147 4.1 算法库简介 147 4.2 非修改性序列算法 148 4.2.1 for each 算法 148 4.2.2 元素计数算法 152 4.2.3 最小值和最大值算法 153 4.2.4 搜寻算法 155 4.2.5 区间比较算法 163 4.3 变动性算法 167 4.3.1 复制 167 4.3.2 转换 169 4.3.3 互换 173 4.3.4 赋值 174 4.3.5 替换 175 4.3.6 逆转 176 4.3.7 旋转 178 4.3.8 排列 179 4.4 排序及相关操作 183 4.4.1 全部元素排序 183 4.4.2 局部排序 185 4.4.3 根据某个元素排序 187 4.4.4 堆(Heap)操作 189 4.4.5 合并排序 191 4.4.6 搜索 194 4.5 删除算法 196 4.6 本章小结 199 第5章 迭代器(Iterator) 200 5.1 迭代器及其特性 200 5.2 头文件简述 201 5.3 迭代器类型详述 201 5.3.1 输入型迭代器 201 5.3.2 输出型迭代器 202 5.3.3 前向迭代器 202 5.3.4 双向迭代器 202 5.3.5 随机存取迭代器 202 5.3.6 vector迭代器的递增和递减 203 5.4 迭代器配接器 203 5.4.1 逆向迭代器 204 5.4.2 插入型迭代器 205 5.4.3 流迭代器 207 5.5 迭代器辅助函数 210 5.5.1 advance()迭代器前进函数 210 5.5.2 distance()迭代器距离 211 5.5.3 iter_swap()交换两个迭代器所指内容 212 5.6 本章小结 213 第6章 STL的数值计算 214 6.1 复数运算 214 6.1.1 最简单的复数运算例题 214 6.1.2 复数成员函数 215 6.1.3 复数运算符 216 6.1.4 复数运算 216 6.1.5 复数的超越函数 218 6.2 数组(向量)运算 221 6.2.1 类valarray 221 6.2.2 数组子集类——slice类和类模板slice_array 228 6.2.3 类gslice和类模板gslice_array 230 6.2.4 类mask_array 232 6.2.5 类indirect_array 233 6.3 通用数值计算 235 6.3.1 求和(accumulate) 235 6.3.2 内积(inner_product) 236 6.3.3 部分和(partial_sum) 238 6.3.4 序列相邻差(adjacent_difference) 239 6.4 全局性数学函数 241 6.5 本章小结 243 第7章 输入/输出流 244 7.1 IOStream简介 244 7.1.1 Stream对象 244 7.1.2 Stream类别 245 7.1.3 Stream操作符 246 7.1.4 操控器(Manipulators) 246 7.2 IOStream 基本类和标准IOStream对象 247 7.2.1 和IOStream类相关的头文件 247 7.2.2 标准Stream操作符 247 7.2.3 Stream状态 251 7.2.4 标准输入和输出函数 254 7.3 格式化 259 7.3.1 格式标志 259 7.3.2 bool类型数据的格式控制 260 7.3.3 详解“字段宽度、充填字符和位置调整” 261 7.3.4 正记号与大写字符 263 7.3.5 数值进制 264 7.3.6 浮点数输出 266 7.3.7 一般性格式定义 267 7.4 StreamBuffer类介绍 268 7.4.1 Stream缓冲区 268 7.4.2 缓冲区迭代器 269 7.4.3 自定义缓冲区 271 7.5 基于字符串的流 277 7.5.1 streambuf类 277 7.5.2 类模板basic_istringstream 279 7.5.3 类模板basic_ostringstream 279 7.5.4 类模板basic_stringstream 280 7.6 基于文件的流 280 7.6.1 文件标志及其使用 281 7.6.2 随机存取 290 7.6.3 4个类模板简介 294 7.6.4 C库中的文件存取功能概述 296 7.7 本章小结 298 第8章 异常处理 299 8.1 异常概念和基本思想 299 8.1.1 异常的概念 299 8.1.2 异常的分类 300 8.1.3 异常的捕捉和处理 302 8.1.4 资源管理 304 8.1.5 异常和效率 306 8.1.6 异常的描述 307 8.1.7 未捕捉的异常 309 8.2 异常类及几个重要问题 311 8.2.1 类exception 311 8.2.2 调用abort() 316 8.2.3 堆栈解退 318 8.2.4 错误代码 319 8.2.5 异常的迷失 319 8.2.6 异常处理的局限性 323 8.3 处理异常详述 324 8.3.1 异常处理的实现机制 325 8.3.2 异常处理语句的语法 326 8.3.3 异常处理不唤醒 326 8.3.4 函数声明 326 8.3.5 使用异常 326 8.4 异常的特殊处理函数 327 8.5 本章小结 328 第9章 通用工具 329 9.1 通用工具库简介 329 9.1.1 相等比较 329 9.1.2 小于比较 329 9.1.3 复制构造 332 9.1.4 默认构造 332 9.1.5 配置器要求 332 9.1.6 运算符 333 9.1.7 对组(pairs) 334 9.2 动态内存管理 339 9.2.1 默认配置器 339 9.2.2 raw storage iterator 341 9.2.3 temporary buffers(临时缓冲区) 341 9.2.4 特定算法 341 9.2.5 C函数库中的内存管理函数 342 9.3 堆的内存分配 343 9.3.1 new和delete运算符 343 9.3.2 分配固定维数的数组 343 9.3.3 分配动态内存数组 344 9.3.4 处理堆耗尽 345 9.4 辅助功能 345 9.4.1 数值极限 345 9.4.2 最大最小值(较大较小值) 348 9.4.3 两值交换 349 9.4.4 辅助性比较 351 9.4.5 头文件cstdlib和cstddef简介 352 9.5 日期和时间 352 9.5.1 3个类型 352 9.5.2 结构体tm 353 9.5.3 相关时间函数 353 9.5.4 时间示例 356 9.6 模板类auto_ptr 358 9.6.1 auto_ptr类构造函数 359 9.6.2 类auto_ptr的成员及转换 359 9.6.3 使用auto_ptr类 360 9.7 本章小结 363 第10章 语言支持 364 10.1 类型 364 10.2 执行属性 364 10.2.1 类模板numeric_limits及其成员 365 10.2.2 float_round_style和float_denorm_style 367 10.2.3 数值极限的特化 368 10.2.4 库函数 368 10.2.5 应用举例 369 10.3 程序的启动和终止 376 10.4 动态内存管理 376 10.4.1 内存的分配和释放 377 10.4.2 内存分配错误 379 10.4.3 应用举例 380 10.5 类型标识符 382 10.5.1 类type_info 382 10.5.2 类bad_cast 383 10.5.3 类bad_typeid 384 10.5.4 操作符typeid 384 10.5.5 操作符dynamic_cast 385 10.5.6 应用举例 385 10.6 异常处理 387 10.6.1 异常类(class exception) 387 10.6.2 violating exception-specifications 388 10.6.3 abnormal termination 389 10.6.4 未捕获异常(uncaught_exception) 390 10.6.5 应用举例 390 10.7 其他运行支持 392 10.7.1 概述 392 10.7.2 应用举例 393 10.8 本章小结 396 第11章 检测库详解 397 11.1 异常类Exception 397 11.1.1 类logic_error 397 11.1.2 类domain_error 398 11.1.3 类invalid_argument 399 11.1.4 类length_error 400 11.1.5 类out_of_range 401 11.1.6 类runtime_error 402 11.1.7 类range_error 403 11.1.8 类overflow_error 404 11.1.9 类underflow_error(下溢出) 405 11.2 assertions(断言) 406 11.3 错误编码 408 11.4 本章小结 409 第12章 国际化库详解 410 12.1 国际化问题和国际化元素 410 12.2 多种字符编码 411 12.2.1 宽字符和多字节文本 411 12.2.2 字符特性 412 12.2.3 特殊字符国际化 414 12.3 类locale 414 12.3.1 类locale概述 414 12.3.2 类locale的facet 417 12.3.3 区域表示和混合区域表示 420 12.3.4 流和区域 423 12.3.5 刻面的处理 424 12.4 标准locale的分类 426 12.4.1 类ctype 426 12.4.2 数值类的locale类 440 12.4.3 刻面numeric punctuation 447 12.4.4 类collate 449 12.4.5 time类(category) 451 12.4.6 C库locale 457 12.5 本章小结 458 第13章 仿函数 459 13.1 仿函数的概述 459 13.1.1 仿函数的概念 459 13.1.2 仿函数的作用 460 13.2 预定义仿函数 467 13.3 辅助用仿函数 468 13.3.1 一元组合函数配接器 469 13.3.2 二元组合函数配接器 471 13.4 关系仿函数 472 13.4.1 等于(equal_to()) 472 13.4.2 不等于(not_equal_to()) 473 13.4.3 小于(less()) 474 13.4.4 大于(greater()) 475 13.4.5 大于等于(greater_equal)和小于等于(less_equal) 475 13.5 逻辑仿函数 476 13.5.1 谓词 476 13.5.2 逻辑仿函数 477 13.6 算术仿函数 482 13.6.1 加减乘除运算仿函数(plus) 482 13.6.2 “求余”仿函数和“求反”仿函数 484 13.7 其他类型的仿函数 485 13.7.1 证和映射 486 13.7.2 仿函数hash和subtractive_rng 489 13.8 适配器 489 13.8.1 成员函数适配器 490 13.8.2 其他适配器 495 13.9 本章小结 504 第14章 配置器 505 14.1 使用配置器 505 14.2 C++标准程序库的默认配置器(标准配置器) 507 14.3 自定义配置器 508 14.4 配置类的详细讨论 509 14.4.1 型别 509 14.4.2 配置类的成员函数 509 14.4.3 广义配置器 510 14.4.4 动态存储 510 14.4.5 C风格的分配 511 14.5 未初始化的内存 511 14.6 配置器举例 513 14.7 本章小结 514 参考文献 516

立即下载
C++ STL标准程序库开发指南.第2版.闫常友

C++ STL标准程序库开发指南.第2版.闫常友。喜欢的朋友快来下载吧,个人觉着很实用!

立即下载
C++STL标准程序库开发指南

C++STL标准程序库开发指南.第2版.闫常友,文字清晰,有目录

立即下载
C++ STL标准程序库开发指南

扫描完整版 C++ STL标准程序库开发指南 C++ STL标准程序库开发指南

立即下载
C++ STL标准程序库开发指南.第2版.闫常友.pdf

C++ STL标准程序库开发指南.第2版.闫常友.pdf 扫描版

立即下载
C++ STL 标准程序库开发指南(第2版)源代码

经典图书C++ STL 标准程序库开发指南(第2版)配套源代码

立即下载
C++STL程序员开发指南(高清PDF中文版)

1.用较大的篇幅对C++语言编程核心技术、C++关键库类和 C++STL编程技术进行了深入地剖析和源码解析。 2.C++领域内的一本权威著作,是目前市场上惟一采用实例的形式全面讲述STL技术的书籍。 3.融合并提炼了许多程序员多年开发C++程序积累下来的成熟经验。 4.书中的内容、知识点、实例既适合课堂教学,又适合读者自学。 第一篇 预备知识 第一章 C++编程技术 1.1 C++与C语言区别 2 1.1.1文件扩展名的改变 2 1.1.2简化输入/输出手段 3 1.1.3 数据类型声明的改变 3 1.1.4动态内存分配算符的使用 4 1.1.5 引用 (References) 类型 6 1.1.6 const语义的扩展 7 1.1.7 指针声明类型与对象类型相一致 10 1.1.8 int与char不再等价 11 1.1.9 结构数据类型的变化 11 1.1.10 数组和指针技术的不同 11 1.2 C++存储技术 12 1.2.1 C++存储类型 12 1.2.2 C++存取修饰符 14 1.2.3 C++对象的生存期 14 1.3 C++函数技术 16 1.3.1类的构造函数、析构函数与赋值函数 16

立即下载
C++ 标准库(第一版+第二版+源代码+PDF

2014/05/18 17:14 3,537,801 C++.Standard Library,The.A.Tutorial.and.Reference.chm 2014/05/18 17:31 13,108,234 C++标准程序库.pdf 2014/05/18 18:09 236,213 cppstdlib-code.zip 2014/05/18 18:10 169,927 examples.zip 2014/05/18 18:02 14,470,662 The C++ Standard Library A Tutorial and Reference (2nd Edition).pdf 2014/05/18 17:54 4,801,530 The C++ Standard Library.pdf 7 个文件 36,324,367 字节

立即下载
STL标准程序库开发指南.第2版

STL标准程序库开发指南.第2版,高清版本,内容齐全,,,,

立即下载
孙卫琴 java面向对象编程 第1版 第2版 PDF

孙卫琴 java面向对象编程 第1版 第2版 PDF 我下载了两个版本,提供给大家下载。希望对你有帮助 。

立即下载
C++面向对象高效编程(第2版).[美]Kayshav Dattatri(带详细书签).pdf

比肩Thinking in C++、The C++ Programming Language等经典著作;Design Patterns作者Erich Gamma博士为本书作序;国内知名技术专家孟岩、方舟联袂推荐; 《C++面向对象高效编程(第2版)》的所有内容都是经验之谈。书中的练习都建立在Kayshav多年的C+++经验基础上。Kayshav不仅详尽地解释了面向对象的概念以及从理论上介绍C++的语言特性,还介绍了继承、mixin类、模板类和异常这些方面的实践经验,探讨了模板实例化、共享库、线程安全性和许多其他问题。 内容简介 《C++面向对象高效编程(第2版)》以帮助读者掌握C++面向对象高效编程范式为目的,详细介绍了C++编程中的各种概念和应用技巧。《C++面向对象高效编程(第2版)》共分为两部分,第一部分(第1章至第10章)介绍面向对象编程的基础和应用,如数据抽象、继承、泛型类型、异常处理等内容;第二部分(第11章至第13章)深入探讨如何建立抽象及其策略,并研究了C++对象模型。书中包含大量的代码实例,读者不仅能从理论上得以提高,而且还能轻松地在实践中应用。 《C++面向对象高效编程(第2版)》适用于C++程序员,也可供对面向对象程序设计感兴趣的编程人员及大专院校计算机专业师生参考。 作者简介 达特特里,当前是Cisco公司的一名高级技术主管,在此之前,曾以项目负责人、技术主管的身份供职于网景公司(NetsCape Communications)和Taligent公司,主要从事前沿Web技术、 面向对象(OO)应用开发框架的研究。他还是面向对象设计和C++领域的独立顾问/培训l师,而且在操作系统、OO架构、OO语言(包括C++、Smalltalk、Eiffel和Modula-2)等领域有25年以上的从业 经验。除此之外,他还是加州大学伯克利扩展(Be rkeley Extension)项目的知名讲师,而且凭借其渊博的学识和在教学方面的天分备受欢迎。Kayst]av早在1987年,就开始使用C++进行编程了。   面向对象软件开发已逐渐成为开发软件的首选。优秀的面向对象软件开发人员、设计人员、系统架构师对其需求与日俱增。要想成为一名成功的面向对象编程(OOP)人员必须忘却(摈弃)多年来面向程序编程的习惯,从新的角度分析问题。   面向对象编程要求程序员和设计者非常熟悉一些基本范式或概念。理解这些范式是在面向对象软件领域打下牢固基础的基本要求。支持OOP的语言都必须支持这些基本范式。换言之,学习OOP,简单地说,就是学习许多语言(如c++,Eiffel,SmallTalk,Java等)所支持的强大范式。本书的第一个目标是,让你在不过分深入语言语法要素的前提下,理解面向对象编程最重要的概念和原则。第一部分——概念、实践和应用,将涵盖这方面的内容。   掌握支持OOP的语言语法和学习OOP的概念不一样。对基本OOP范式一无所知的人,也能成为C++或Java的佼佼者。但是,理解OOP基本概念的人可以在任何支持OOP的语言中有效地使用这些概念。而且,他/她还知道何时加入特定的概念。任何掌握链表概念的人都会发现,它是在Pascal、C或Modula-2中实现链表的基础。比方说,如果你知道如何游泳,就可以在湖泊、池塘或游泳池中游泳。语言只是一个帮助你实现最终目标的载体。   学习OOP概念,仅仅是漫漫长路的第一个里程碑,不是程序员和设计人员的终极目标。你应该用这些概念去解决自己专业领域中的问题。财政计划人员想开发一个对象框架,以管理个人资金;商店想开发应用程序,以管理存货。但是,要把OOP的原则应用于不同的领域实属不易。例如,解决玩具课本的问题可能很琐碎,而解决某个专业领域的问题和构建系统则非常复杂和困难。学习专业领域的特定例子(例如文件系统、汽车代理管理系统、桌面排版系统、航班计划系统等)将会有所帮助。显然,我不是这些领域的专家,大部分读者也不熟悉这些相关领域,对它们也不感兴趣。这是在进行面向对象设计时,很多设计者和程序员所面临的典型问题。然而,无论涉及什么领域,总会有一些编程或设计方面(与相关领域无关)的经验原则,对软件专业人士解决复杂问题非常有用。 第一部分 概念、实践和应用 第1章 什么是面向对象编程 1.1 背景 1.1.1 面向过程编程示例 1.1.2 银行账户的表示 1.1.3 银行账户的安全 1.1.4 用面向对象编程解决问题 1.2 理解对象模型 1.3 术语 1.4 理解消息、方法和实例变量 1.4.1 对象中包含的内容 1.4.2 实例化(或创建)对象 1.5 什么可以作为类 1.6 什么不是类 1.7 类的目的 1.8 深入了解对象 1.8.1 对象的状态 1.8.2 对象状态的重要性 1.8.3 谁控制对象的状态 1.8.4 对象的行为 1.9 面向对象软件开发的阶段 1.9.1 面向对象分析(OOA) 1.9.2 面向对象设计(OOD) 1.10 面向对象编程(OOP) 1.11 对象模型的关键要素 1.12 OOP范式和语言 1.13 面向对象编程语言的要求 1.14 对象模型的优点 1.15 小结 第2章 什么是数据抽象 2.1 接口和实现的分离 2.2 对象接口的重要性 2.3 实现的含义 2.4 保护实现 2.5 数据封装的优点 2.6 接口、实现和数据封装之间的关系 2.7 数据封装注意事项 2.8 确定封装的内容 2.9 抽象数据类型 2.10 抽象数据类型——栈的实现 2.11 C++中的数据抽象 2.12 类中的访问区域 2.13 和类一起使用的术语 2.14 类的实现者 2.15 实现成员函数 2.16 识别成员函数的目标对象 2.17 程序示例 2.18 对象是重点 2.19 对接口的再认识 2.20 什么是多线程安全类 2.21 确保抽象的可靠性——类不变式和断言 2.21.1 类不变式 2.21.2 前置条件和后置条件 2.21.3 使用断言实现不变式和条件 2.21.4 高效使用断言 2.22 面向对象设计的表示法 2.23 Booch表示法 2.24 Booch中类的关系 2.24.1 关联 2.24.2 聚集(has-a) 2.24.3 “使用”关系 2.24.4 继承关系(is-a) 2.24.5 类范畴 2.25 统一建模语言(UML) 2.26 UML中类的关系 2.27 关联 2.27.1 作为聚集的关联 2.27.2 OR关联 2.28 组合 2.29 泛化关系(is-a) 2.30 has-a关系的重要性 2.31 小结 第3章 C++与数据抽象 3.1 类概念的基础 3.2 类要素的细节 3.2.1 访问区域 3.2.2 分析 3.3 复制构造函数 3.4 赋值操作符 3.5 this指针和名称重整的进一步说明 3.6 const成员函数的概念 3.7 编译器如何实现const成员函数 3.8 C++中类和结构的区别 3.9 类可以包含什么 3.10 设计期间的重点——类的接口 3.11 类名、成员函数名、参数类型和文档 3.12 参数传递模式——客户的角度 3.13 采用语义 3.14 为参数选择正确的模式 3.15 函数返回值 3.16 从函数中返回引用 3.17 编写内存安全类 3.18 客户对类和函数的责任 3.19 小结 第4章 OOP中的初始化和无用单元收集 4.1 什么是初始化 4.1.1 使用构造函数初始化 4.1.2 使用内嵌对象必须遵守的规则 4.2 无用单元收集问题 4.2.1 无用单元 4.2.2 悬挂引用 4.2.3 无用单元收集和悬挂引用的补救 4.2.4 无用单元收集和语言设计 4.2.5 在C++中何时产生无用单元 4.2.6 对象何时获得资源 4.3 C++中的无用单元收集 4.4 对象的标识 4.5 对象复制的语义 4.6 对象赋值的语义 4.7 对象相等的语义 4.8 为什么需要副本控制 4.8.1 信号量示例 4.8.2 许可证服务器示例 4.8.3 字符串类示例 4.9 分析 4.10 “写时复制”的概念 4.10.1 何时使用引用计数 4.10.2 “写时复制”小结 4.11 类和类型 4.12 小结 第5章 继承的概念 5.1 继承的基本知识 5.2 is-a关系的含义 5.3 继承关系的效果 5.4 多态置换原则 5.5 用继承扩展类层次 5.6 继承的一些基本优点 5.7 动态绑定、虚函数和多态性 5.7.1 动态绑定含义 5.7.2 动态绑定的支持——虚函数 5.8 继承对数据封装的影响 5.9 多态的含义 5.10 有效使用虚函数(动态绑定) 5.11 虚析构函数的要求 5.12 构造函数和虚函数 5.13 一般-特殊的概念 5.14 抽象(延期)类的概念 5.15 抽象类的用途 5.16 强大的继承 5.17 有效的代码复用 5.18 抽象基类的客户 5.19 继承优点小结 5.20 继承和动态绑定的危险 5.20.1 C++如何实现动态绑定(虚函数) 5.20.2 虚函数的开销 5.20.3 动态绑定和类型检查 5.21 不必要的继承和动态绑定 5.22 使用虚函数的不同模式 5.23 小结 第6章 多重继承概念 6.1 多重继承的简单定义 6.2 大学示例 6.3 多重继承关系的含义 6.4 多重继承场景 6.4.1 C++中解决名称冲突 6.4.2 二义性基类问题 6.5 多重继承的基本优点 6.6 多重继承的替换方案 6.6.1 第一种替换方案 6.6.2 第二种替换方案 6.7 重复继承 6.8 重复继承的解决方案 6.8.1 在C++中通过虚基类共享对象 6.8.2 虚基类的优点 6.8.3 虚基类产生的新问题 6.8.4 比较Eiffel和C++中的多重继承 6.9 继承的一般问题 6.10 使用mixin类加入静态功能 6.10.1 mixin类的定义 6.10.2 何时使用mixin类 6.11 动态变化情况的设计 6.11.1 角色扮演类的设计灵活性 6.11.2 如何使用角色扮演类 6.11.3 管理角色的另一种方法 6.11.4 TUniversityMember类对象的多态用法 6.11.5 按要求改动现有类 6.11.6 mixin类和角色对象的比较——适用范围 6.12 C++的私有派生 6.12.1 何时使用私有派生 6.12.2 重新导出私有基类的成员 6.12.3 私有派生的替换方法——包含 6.12.4 需要使用私有派生的情况 6.13 mixin类和私有派生的实用示例 6.14 继承与包含 6.15 小结 第7章 从类中选择性导出(友元函数) 7.1 需要什么 7.2 C++的情况 7.3 友元关系的含义 7.4 非成员函数和友元函数的应用 7.4.1 实例1:尽量减少类之间过多的交互 7.4.2 实例2:克服语法问题 7.4.3 实例3:需要和多个类进行通信的函数 7.5 非成员函数的优点 7.6 选择友元函数还是成员函数 7.7 小结 第8章 操作符重载的概念 8.1 语言类型和程序员定义类型的区别 8.2 什么是重载操作符 8.3 操作符重载的优点和缺点 8.3.1 更加简洁的抽象数据类型 8.3.2 令人费解的操作符重载 8.3.3 无法理解优先级和结合规则 8.4 C++中的重载操作符 8.5 ++和——操作符的另一个应用 8.6 更复杂的操作符——成员访问操作符:- 8.7 非成员函数的操作符 8.7.1 作为成员函数的操作符 8.7.2 作为非成员函数实现的操作符 8.7.3 为什么需要转换 8.8 转换函数 8.8.1 转换构造函数和转换函数之间的相互影响 8.8.2 消除对临时对象的需求 8.9 从操作符函数返回结果 8.10 赋值操作符 8.11 小结 第9章 泛型类型 9.1 重复性编码问题 9.2 智能解决方案——泛型编程 9.3 泛型类型(类)的基本知识 9.4 泛型类型和代码重复 9.5 泛型类实现者与客户之间的契约 9.5.1 这是否是良好的设计 9.5.2 泛型类实现中的操作符和成员函数 9.5.3 替换解决方案——泛型类的特殊化 9.6 模板特殊化 9.6.1 模板成员函数的特殊化 9.6.2 另一种替换方案:分离对象的比较 9.6.3 不能随意停用模板类的原因 9.7 模板类特殊化 9.8 泛型函数的概念 9.9 C++中模板类和成员函数的实例化 9.10 泛型类型和类型检查 9.11 约束泛型和无约束泛型 9.11.1 C++中对模板参数的约束 9.11.2 C++中模板参数的特定类型 9.11.3 模板参数的默认值 9.12 C++中对模板参数执行约束 9.13 泛型类和选择性导出 9.14 继承和泛型类 9.15 泛型类继承的用途 9.16 控制对象创建的一般技巧 9.17 实现计数指针 9.18 尽量减少模板对象的代码重复 9.18.1 程序的内存占用 9.18.2 减少模板代码的方案 9.19 模板类和源代码保护 9.20 共享(动态)库中的模板类 9.20.1 共享库中的模板类——多实例问题 9.20.2 消除共享库中的多个实例 9.20.3 和现有共享库链接 9.20.4 容器类 9.21 泛型类和继承的比较 9.22 小结 第10章 处理异常情况 10.1 处理错误状况的原因 10.2 错误码的替换方案 10.3 C++异常处理模型 10.3.1 C++异常机制的工作方式 10.3.2 try块的重要性 10.3.3 throw表达式的重要性 10.3.4 理解动态调用链 10.3.5 处理多个异常 10.3.6 catch块的责任 10.4 Eiffel中的异常模型 10.5 Eiffel和C++异常模型的优缺点 10.6 有效地使用C++异常 10.7 创建异常层次 10.7.1 catch处理代码的顺序 10.7.2 编写异常安全函数 10.8 项目中的异常处理架构 10.9 项目中错误管理的成功策略 10.9.1 函数不是防火墙 10.9.2 设计异常层次 10.10 异常环境中的资源管理 10.10.1 自动资源管理 10.10.2 泛化资源管理解决方案 10.11 异常和构造函数 10.11.1 从函数中返回安全资源 10.11.2 管理对象数组的辅助类 10.11.3 自动无用单元收集的开销 10.12 构造函数的部分完成 10.13 使用异常创建安全数组 10.14 小结 第二部分 构建强大的面向对象软件 第11章 掌握数据抽象 11.1 隐藏抽象的实现细节 11.1.1 使用句柄的优点 11.1.2 使用句柄的缺点 11.2 将指针作为数据成员使用(惰性求值) 11.3 控制对象创建 11.3.1 只允许使用new()操作符创建对象 11.3.2 防止使用new()操作符创建对象 11.4 使用指针和引用代替内嵌对象 11.5 避免用大型数组作为自动变量(或数据成员) 11.6 使用对象数组和对象指针数组 11.7 用对象代替基本类型指针作为数据成员和成员函数的返回值 11.8 与C的兼容性 11.9 合理选择实现:对象大小和代码效率 11.10 避免临时对象 11.11 使用复制构造函数初始化对象 11.12 有效使用代理对象 11.12.1 代理对象有助于安全共享对象 11.12.2 代理对象易于使用 11.12.3 代理对象是远程对象的替身 11.12.4 智能代理对象提供额外的功能 11.12.5 代理对象解决语法/语义的问题 11.12.6 泛型下标代理技术 11.13 使用简单的抽象建立更复杂的抽象 11.14 抽象必须允许客户以不同的方式使用类 11.15 小结 第12章 高效使用继承 12.1 用继承实现简洁的菜单和命令 12.2 封装创建对象的细节 12.3 虚构造函数的概念 12.4 为协议控制而组合使用虚函数和非虚函数 12.5 双分派概念 12.6 设计和实现容器类 12.7 设计可处理不同类型的容器 12.8 用泛型编程实现同质容器类 12.8.1 设计目的 12.8.2 基于模板的同质容器的优点 12.9 基于模板的容器的缺点 12.10 导航容器 12.11 主动迭代器 12.12 管理容器和迭代器——客户的角度 12.12.1 样式1:在容器中创建并返回迭代器供用户使用 12.12.2 样式2:按值返回用户可使用迭代器控制的容器 12.13 C++标准模板库(STL) 12.13.1 STL容器 12.13.2 迭代器 12.13.3 STL中的算法 12.14 小结 12.15 TArray容器的实现代码 第13章 理解C++对象模型 13.1 高效实现 13.2 C++表示对象的方式 13.2.1 没有虚函数的类 13.2.2 成员函数 13.2.3 静态数据成员 13.2.4 构造函数 13.3 包含虚函数的类 13.4 在共享库之间共享虚函数表 13.5 虚函数和多重继承(非虚基类) 13.6 虚基类 13.6.1 虚基类的成员访问 13.6.2 带虚函数的虚基类 13.7 RTTI(运行时类型识别)的实现支持 13.8 基于对象和面向对象编程 13.9 引用、指针和值 13.9.1 引用和指针的赋值 13.9.2 复制构造函数 13.9.3 构造函数的职责 13.10 复制构造函数的责任 13.11 优化对象的按值传递和按值返回 13.11.1 按值传递 13.11.2 按值返回 13.12 运行时初始化 13.13 小结 附录 A 参考书目和推荐读物 索引

立即下载
c++标准程序库自修教程与参考手册

c++标准程序库自修教程与参考手册 在网上找了一下,都是比较模糊的,本书非常清晰,祝各位读的愉快。

立即下载
Boost程序库完全开发指南:深入C++“准”标准库(第3版).pdf

Boost程序库完全开发指南:深入C++“准”标准库(第3版).pdf

立即下载
BOOST程序库完全开发指南第3版_带书签目录高清完整版.这是第二部分

BOOST程序库完全开发指南:深入C++“准”标准库 第3版_PDF电子书下载 带书签目录 高清完整版, 由于上传大小限制,总共有2个部分,需一起下载解压

立即下载
three.js开发指南 高清 带书签 pdf

前 言 致 谢 第1章用Three.js创建你的第一个三维场景1 1.1 使用Three.js的前提条件3 1.2 获取源代码4 1.2.1 用Git克隆代码仓库4 1.2.2 下载并解压压缩包5 1.2.3 测试示例6 1.3 创建HTML页面框架7 1.4 渲染并展示三维对象9 1.5 添加材质、灯光和阴影13 1.6 用动画扩展你的首个场景15 1.6.1 引入requestAnimation-Frame()方法15 1.6.2 转动方块17 1.6.3 弹跳球17 1.7 使用dat.GUI库简化试验18 1.8 使用ASCII效果19 1.9 总结20 第2章使用构建Three.js场景的基本组件22 2.1 创建场景22 2.1.1 场景的基本功能23 2.1.2 在场景中添加雾化效果27 2.1.3 使用材质覆盖属性28 2.2 使用几何和网格对象29 2.2.1 几何对象的属性和函数29 2.2.2 网格对象的函数和属性33 2.3 选择合适的相机37 2.3.1 正投影相机和透视相机37 2.3.2 让相机在指定点上聚焦41 2.4 总结41 第3章使用Three.js里的各种光源43 3.1 探索Three.js库提供的光源43 3.2 学习基础光源44 3.2.1 AmbientLight—影响整个场景的光源44 3.2.2 PointLight—照射所有方向的光源47 3.2.3 SpotLight—具有锥形效果的光源49 3.2.4 DirectinalLight—模拟远处类似太阳的光源53 3.2.5 使用特殊光源生成高级光照效果54 3.3 总结61 第4章使用Three.js的材质62 4.1 理解共有属性63 4.1.1 基础属性63 4.1.2 融合属性64 4.1.3 高级属性64 4.2 从简单的网格材质(基础、深度和面)开始65 4.2.1 简单表面的MeshBasic-Material65 4.2.2 基于深度着色的MeshDepthMaterial67 4.2.3 联合材质68 4.2.4 计算法向颜色的MeshNormalMaterial70 4.2.5 为每个面指定材质的MeshFaceMaterial72 4.3 学习高级材质73 4.3.1 用于暗淡、不光亮表面的MeshLambertMaterial74 4.3.2 用于光亮表面的MeshPhongMaterial75 4.3.3 用ShaderMaterial创建自己的着色器76 4.4 线段几何体的材质81 4.4.1 LineBasicMaterial81 4.4.2 LineDashedMaterial83 4.5 总结84 第5章学习使用几何体85 5.1 Three.js提供的基础几何体86 5.1.1 二维几何体86 5.1.2 三维几何体92 5.2 总结100 第6章使用高级几何体和二元操作102 6.1 ConvexGeometry102 6.2 LatheGeometry104 6.3 通过拉伸创建几何体105 6.3.1 ExtrudeGeometry106 6.3.2 TubeGeometry107 6.3.3 从SVG拉伸109 6.3.4 ParametricGeometry110 6.4 创建三维文本112 6.4.1 渲染文本113 6.4.2 添加自定义字体114 6.5 使用二元操作组合网格115 6.5.1 subtract函数117 6.5.2 intersect函数120 6.5.3 union函数121 6.6 总结121 第7章粒子和粒子系统123 7.1 理解粒子123 7.2 粒子、粒子系统和BasicParticleMaterial125 7.3 使用HTML5画布格式化粒子128 7.3.1 在CanvasRenderer类里使用HTML5画布128 7.3.2 在WebGLRenderer中使用HTML5画布129 7.4 使用纹理格式化粒子131 7.5 从高级几何体中创建粒子系统139 7.6 总结141 第8章创建、加载高级网格和几何体143 8.1 几何体组合和合并143 8.1.1 对象组合143 8.1.2 将多个网格合并成一个网格145 8.2 从外部资源中加载几何体147 8.3 以Three.js的JSON格式保存和加载147 8.3.1 保存和加载几何体147 8.3.2 保存和加载场景149 8.4 使用Blender151 8.4.1 在Blender中安装Three.js导出器152 8.4.2 在Blender里加载和导出模型153 8.5 导入三维格式文件155 8.5.1 OBJ和MTL格式156 8.5.2 加载Collada模型159 8.5.3 加载STL、CTM和VTK模型160 8.5.4 展示蛋白质数据银行中的蛋白质161 8.5.5 从PLY模型中创建粒子系统163 8.6 总结164 第9章创建动画和移动相机166 9.1 基础动画166 9.1.1简单动画167 9.1.2 选择对象168 9.1.3 用Tween.js做动画170 9.2 使用相机172 9.2.1 轨迹球控件172 9.2.2 飞行控件174 9.2.3 翻滚控件175 9.2.4 第一人称控件175 9.2.5 轨道控件177 9.2.6 路径控件178 9.3 变形动画和骨骼动画180 9.3.1 用变形目标制作动画181 9.3.2用骨骼和蒙皮制作动画184 9.4使用外部模型创建动画186 9.4.1 用Blender创建骨骼动画186 9.4.2从Collada模型中加载动画190 9.4.3从雷神之锤模型中加载动画191 9.5总结192 第10章加载和使用纹理194 10.1在材质中使用纹理194 10.1.1加载纹理并应用到网格194 10.1.2使用凹凸贴图创建皱纹197 10.1.3使用法向贴图创建更加细致的凹凸和皱纹198 10.1.4使用光照贴图创建假阴影199 10.1.5用环境贴图创建虚假的反光效果201 10.1.6高光贴图204 10.2纹理的高级用途205 10.2.1定制UV映射205 10.2.2重复映射207 10.2.3在画布上绘制图案并作为纹理209 10.3总结213 第11章定制着色器和渲染后期处理215 11.1设置后期处理215 11.1.1创建EffectComposer对象216 11.2后期处理通道218 11.2.1简单后期处理通道218 11.2.2 使用掩膜的高级效果组合器223 11.2.3 用ShaderPass定制效果226 11.3 创建自定义的后期处理着色器231 11.3.1 定制灰度图着色器232 11.3.2 定制位着色器235 11.4 总结237 第12章用Physijs在场景中添加物理效果238 12.1 创建可用Physijs的基本Three.js场景238 12.2 材质属性243 12.3 基础图形244 12.4 使用约束限制对象移动248 12.4.1 用PointConstraint限制两点间的移动249 12.4.2 用HingeConstraint创建类似门的约束250 12.4.3 用SliderConstraint将移动限制到一个轴252 12.4.4 用ConeTwistConstraint创建类似球销的约束254 12.4.5 用DOFConstraint实现细节的控制255 12.5 总结259

立即下载
Boost程序库完全开发指南——深入C++“准”标准库高清版.pdf

第Ⅰ部分 通用库 第1章 Smart_ptr库 1.1 Smart_ptr库如何改进程序 1.2 何时需要智能指针 1.3 Smart_ptr库如何适用于标准库 1.4 智能指针scoped_ptr 1.5 智能指针scoped_array 1.6 智能指针shared_ptr 1.7 智能指针shared_array 1.8 智能指针intrusive_ptr 1.9 智能指针weak_ptr 1.10 Smart_ptr库小结 第2章 Conversion库 2.1 Conversion库如何改进程序 2.2 polymorphic_cast转型函数 2.3 polymorphic_downcast转型函数 2.4 numeric_cast转型函数 2.5 lexical_cast转型函数 2.6 Conversion库小结 第3章 Utility库 3.1 Utility库如何改进程序 3.2 BOOST_STATIC_ASSERT断言 3.3 checked_delete函数 3.4 noncopyable类 3.5 addressof函数 3.6 enable_if函数 3.7 Utility库小结 第4章 Operators库 4.1 Operators库如何改进程序 4.2 Operators库如何适用于标准库 4.3 Operators库 4.4 使用方法 4.5 Operators库小结 第5章 Regex库 5.1 Regex库如何改进程序 5.2 Regex库如何适用于标准库 5.3 Regex库 5.4 使用方法 5.5 Regex库小结 第Ⅱ部分 容器和数据结构 第6章 Any库 6.1 Any库如何改进程序 6.2 Any库如何适用于标准库 6.3 Any库 6.4 使用方法 6.5 Any库小结 第7章 Variant库 7.1 Variant库如何改进程序 7.2 Variant库如何适用于标准库 7.3 Variant库 7.4 使用方法 7.5 Variant库小结 第8章 Tuple库 8.1 Tuple库如何改进程序 8.2 Tuple库如何适用于标准库 8.3 Tuple库 8.4 使用方法 8.5 Tuple库小结 第Ⅲ部分 函数对象和高阶编程 第9章 Bind库 9.1 Bind库如何改进程序 9.2 Bind库如何适用于标准库 9.3 Bind库 9.4 使用方法 9.5 Bind库小结 第10章 Lambda库 10.1 Lambda库如何改进程序 10.2 Lambda库如何适用于标准库 10.3 Lambda库 10.4 使用方法 10.5 Lambda库小结 第11章 Function库 11.1 Function库如何改进程序 11.2 Function库如何适用于标准库 11.3 Function库 11.4 使用方法 11.5 Function库小结 第12章 Signals库 12.1 Signals库如何改进程序 12.2 Signals库如何适用于标准库 12.3 Signals库 12.4 使用方法 12.5 Signals库小结

立即下载
Python3程序开发指南.第二版(带书签)高清完整.pdf版

Python3程序开发指南.第二版(带书签)

立即下载
关闭
img

spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
点击完成任务获取下载码
输入下载码
为了良好体验,不建议使用迅雷下载
img

C++ STL标准程序库开发指南-第2版-高清-完整目录-2013年5月

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0
为了良好体验,不建议使用迅雷下载
VIP下载
您今日下载次数已达上限(为了良好下载体验及使用,每位用户24小时之内最多可下载20个资源)

积分不足!

资源所需积分/C币 当前拥有积分
您可以选择
开通VIP
4000万
程序员的必选
600万
绿色安全资源
现在开通
立省522元
或者
购买C币兑换积分 C币抽奖
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
为了良好体验,不建议使用迅雷下载
确认下载
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 0 0
为了良好体验,不建议使用迅雷下载
VIP和C币套餐优惠
img

资源所需积分/C币 当前拥有积分 当前拥有C币
5 4 45
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
确认下载
下载
您还未下载过该资源
无法举报自己的资源

兑换成功

你当前的下载分为234开始下载资源
你还不是VIP会员
开通VIP会员权限,免积分下载
立即开通

你下载资源过于频繁,请输入验证码

您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:webmaster@csdn.net!

举报

若举报审核通过,可返还被扣除的积分

  • 举报人:
  • 被举报人:
  • *类型:
    • *投诉人姓名:
    • *投诉人联系方式:
    • *版权证明:
  • *详细原因: