STL扩展技术手册卷I:集合和迭代器(附光盘)
分類: 图书,计算机/网络,程序设计,C C++ C# VC VC++,
作者: 威尔森著,金庆等译
出 版 社: 机械工业出版社
出版时间: 2008-9-1字数:版次: 1页数: 414印刷时间:开本: 16开印次: 1纸张:I S B N : 9787111242277包装: 平装编辑推荐
著名的C++专家Matthew Wilson在本书中展示了如何超越C++标准并扩展标准模板库(Standard Template Library,STL),进入包含API和非标准集合的更广阔的C++世界,以编写更有效、更有表达力、更灵活、更健壮的软件。
在本书中,Wilson使用自己创新的技术帮助读者掌握STL扩展特性,这体现在两个方面:将专用技术库和操作系统API适配为STL兼容的集合,并定义精密的迭代适配器,使STL潜在的效率和表现力得以实现。Wilson用实际的例子阐明了几个强大的概念和技巧,让你在连STL的创造者都未曾预见的方向上扩展STL,其中包括集合、元素参考类别、外部迭代器失效和推断式接口适配。
对于那些对STL知之甚微的C++程序员,本书将是宝贵的资源。它帮助你:
学习STL扩展中特有的原则和技巧。
通过查看STL扩展的内部实现,进一步学习STL。
学习实现封装的通用技术,在操作系统API和专用技术库之上实现封装。
学习如何编写迭代器适配器,并理解其实现和使用上的限制及其背后的原理。
本书主要内容包括
编写大部分集合,并理解它们与容器的不同之处。
掌握元素引用类别:定义它们,检测它们,并利用它们设计STL扩展集合和迭代器。
处理外部迭代器失效,并理解它对STL兼容集合的设计产生的惊人影响。
适配实际的API,包括从文件系统遍历到分散或聚集I/O。
使用独立迭代器类型,从简单的std::ostream_iterator扩展到复杂的过滤和转换类型或值的适配器。
内容简介
本书以STLSoft为基础,广泛深入地论述了C++标准库STL的相关内容。全书共三部分43章,包括标准库模板、扩展STL、元素引用类别、DRY SPOT原则、抽象泄漏法则、契约式编程、约束、垫片、不完备结构一致性的发端、资源获取、模板工具、推断式接口适配、Henney假说、适配、遍历进程和模块、环境变量、字符串分词、聚集分散的I/O以及迭代器等内容。
全书通过严谨的表述与丰富的示例,将概念和理论与实际的设计和代码结合起来,从而使读者既能深刻地理解STL的知识,又能熟练地掌握STL运用方法。
作者简介
Matthew Wilson,Synesis软件公司的软件开发顾问,STLSoft和Pantheios库的创建者,《Imperfect C++》(Addison-Wesley)的作者。他曾是《C/C++ Users Journal》(C/C++用户杂志)的专栏作家,也是一些主要出版物的撰稿者,具有15年以上的C++经验。他拥有英国曼彻斯特大学博士学位,目前定居在澳大利亚。
目录
译者序
前言
致谢
序言
编排体例
第一部分基础
第1章标准模板库
第2章扩展STL:STL与真实世界的碰撞
第3章元素引用类别
第4章奇异去临时引用
第5章DRY SPOT原则
第6章抽象泄漏法则
第7章契约式编程
第8章约束
第9章垫片
第10章鸭规则和鹅规则:不完备结构一致性的发端
第11章资源获取即初始化
第12章模板工具
第13章推断式接口适配:编译时适配接口不全的类型
第14章Henney假说:当模板参数表太长
第15章通过equal()减少友元函数的使用
第16章基本组件
第二部分集合
第17章适配glob API
第18章插曲:构造函数冲突以及不良的设计
第19章适配opendir/readdir API
第20章适配FindFirstFile/FindNextFile API
第21章插曲:枚举FTP服务器目录——保持效率和可用性的平衡
第22章遍历进程和模块
第23章斐波那契序列
第24章适配MFC的CArray容器族
第25章环境变量的map
第26章在Z平面上来回穿梭
第27章字符串分词
第28章适配COM枚举器
第29章插曲:运用成员类型推断,纠正设计上的小疏忽
第30章适配COM集合
第31章聚集分散的I/O
第32章根据参数返回不同类型
第33章外部迭代器失效
第三部分迭代器
第34章增强版ostream_iterator
第35章插曲:借助解引用代理模式,消除笨拙的输出迭代器语法
第36章变换迭代器
第37章插曲:命名时谨慎为好
第38章成员选取迭代器
第39章连接C风格字符串
第40章字符串对象的连接操作
第41章适配迭代器特征类
第42章过滤迭代
第43章组合多个迭代器适配
结语
参考书目
书摘插图
第1章标准模板库
对STL的介绍本身就能写一本书,但我现在写的不是这样的书。介绍STL的书籍有很多(在参考书目中列举一些),我推荐您在阅读本书之前读读这方面的书。
1.1核心概念
STL的核心是六个基本概念:容器、迭代器、算法、函数对象、适配器和分配器。
……