本书通过对大量程序实例的分析,深入浅出地讲解了C++STL高级编程技术。全书首先介绍了C++语言的基本知识、C++语言编程核心技术和C++关键库类,然后逐步过渡到C++STL编程技术,用较大的篇幅对它们进行了深入的剖析和源码解析。\r\n 本书由大量的源程序实例组成,融合并提炼了许多人多年开发C++程序积累下来的成熟经验,意在展现深澳及抽象的C++编程技术,特别是令人望而生畏的强大的STL技术。\r\n 本书是C++领域内一本权威的著作,是目前市场上惟一一本采用实例的形式全面讲述STL技术的书籍。书中的内容、知识点、实例既适合课堂教学,又适合读者自学。无论是高等院校计算机及相关专业的学生,还是计算机业界的从业人员,以及广大的计算机爱好者,都可以从本书中获益。
第一篇 预备知识\r\n\r\n第一章 C++编程技术\r\n\r\n1-1 C++与C语言区别 \r\n1-1-1 文件扩展名的改变 \r\n1-1-2 简化输入/输出手段\r\n1-1-3 数据类型声明的改变 \r\n1-1-4 动态内存分配算符的使用 \r\n1-1-5 引用 (References) 类型\r\n1-1-6 const语义的扩展\r\n1-1-7 指针声明类型与对象类型相一致 \r\n1-1-8 int与char不再等价 \r\n1-1-9 结构数据类型的变化\r\n1-1-10 数组和指针技术的不同 \r\n1-2 C++存储技术 \r\n1-2-1 C++存储类型\r\n1-2-2 C++存取修饰符 \r\n1-2-3 C++对象的生存期\r\n1-3 C++函数技术 \r\n1-3-1 类的构造函数、析构函数与赋值函数 \r\n1-3-2 在派生类中实现类的基本函数 \r\n1-3-3 内联函数技术 \r\n1-3-4 友元函数技术 \r\n1-4 C++面向对象机制实现 \r\n1-4-1 类的继承技术 \r\n1-4-2 函数重载技术 \r\n1-4-3 运算符重载技术\r\n1-4-4 纯虚函数和抽象类技术 \r\n1-5 小结 \r\n\r\n第二章 C++标准库技术\r\n\r\n2-1 C++标准库简介 \r\n2-1-1 I/O流技术 \r\n2-1-2 string类 \r\n2-1-3 标准异常类\r\n2-1-4 标准模板库类 \r\n2-2 C++输入/输出流技术 \r\n2-2-1 C++语言输入/输出流概述 \r\n2-2-2 输入输出格式控制 \r\n3-2-3 特殊输入/输出流格式的设定 \r\n2-2-4 自定义的流操作符 \r\n2-2-5 根本不用于标准流运算符间的流字符串读/写函数 \r\n2-2-6 标准输入/输出流的操作符的重载 \r\n2-2-7 C++文件输入/输出流 \r\n2-3 C++字符串技术 \r\n2-3-1 字符串类基本操作 \r\n2-3-2 复杂字符串实例 \r\n2-4 标准异常类 \r\n2-4-1 绝对终止机制 \r\n2-4-2 非局部Goto机制\r\n2-4-3 signals机制 \r\n2-4-4 C++异常处理机制 \r\n2-4-5 类的异常处理 \r\n2-5 小结 \r\n\r\n第二篇 C++ STL技术原理和组成\r\n\r\n第三章 STL技术原理\r\n\r\n3-1 模板概述 \r\n3-1-1 Smalltalk 方法 \r\n3-1-2 模板方法 \r\n3-1-3 模板参数 \r\n3-1-4 关键字typename的使用 \r\n3-2 函数模板 \r\n3-2-1 函数模板基础 \r\n3-2-2 函数的定制 \r\n3-2-3 函数模板实例\r\n3-3 类模板 \r\n3-3-1 类模板定义 \r\n3-3-2 类模板使用 \r\n3-3-3 类模板中的友元 \r\n3-3-4 模板程序设计举例\r\n3-4 模板安全\r\n3-4-1 Class类型的参数\r\n3-4-2 使得包容安全 \r\n3-4-3 默认构造函数 \r\n3-4-4 operator new \r\n3-4-5 Destructor \r\n3-4-6 其他 \r\n3-5 模板的特殊性 \r\n3-5-1 一个特殊化的例子 \r\n3-5-2 指针特殊化 \r\n3-6 模板实例-list 容器类设计 \r\n3-7 小结 \r\n\r\n第四章 STL技术概述\r\n\r\n4-1 STL简介 \r\n4-1-1 什么是STL \r\n4-1-2 STL的发展 \r\n4-1-3 STL的使用和实现 \r\n4-1-4 名字空间技术 \r\n4-2 STL基本结构 \r\n4-2-1 容器(containers) \r\n4-2-2 算法(Algorithms) \r\n4-2-3 迭代器(iterators) \r\n4-2-4 函数对象(function object) \r\n4-2-5 其它部件 \r\n4-3 STL编程概述\r\n4-3-1 传统C++编程技术 \r\n4-3-2 STL编程技术 \r\n4-4 STL头文件和编译器 \r\n4-5 STL编程关键 \r\n4-5-1 STL容器技术\r\n4-5-2 C++和STL技术\r\n4-6 小结 \r\n\r\n第三篇 C++ STL容器编程技术\r\n\r\n第五章 STL容器技术总述\r\n\r\n5-1 容器技术概述 \r\n5-1-1 容器介绍 \r\n5-1-2 Forward 容器 \r\n5-1-3 Reversible 容器 \r\n5-1-4 Sequence \r\n5-1-5 Associative 容器 \r\n5-2 vector技术 \r\n5-2-1 vector头文件 \r\n5-2-2 vector对象 \r\n5-2-3 vector实例 \r\n5-3 deque技术 \r\n5-3-1 deque头文件 \r\n5-3-2 deque对象 \r\n5-3-3 deque实例 \r\n5-4 list技术 \r\n5-4-1 list头文件 \r\n5-4-2 list对象 \r\n5-4-3 list实例 \r\n5-5 stack技术 \r\n5-5-1 stack头文件 \r\n5-5-2 stack对象 \r\n5-5-3 stack实例 \r\n5-6 queue技术 \r\n5-6-1 queue头文件 \r\n5-6-2 queue对象 \r\n5-6-3 queue实例 \r\n5-7 priority_queue技术 \r\n5-7-1 priority_queue头文件 \r\n5-7-2 priority_queue对象 \r\n5-7-3 priority_queue实例 \r\n5-8 slist技术 \r\n5-9 关联式容器 \r\n5-9-1 set介绍 \r\n5-9-2 multiset介绍 \r\n5-9-3 map介绍 \r\n5-9-4 multimap介绍 \r\n5-9-5 实例祥解 \r\n5-10 小结 \r\n\r\n第六章 vector技术编程详解\r\n\r\n6-1 vector编程入门 \r\n6-1-1 定义vector \r\n6-1-2 vector初始化 \r\n6-1-3 vector大小统计\r\n6-2 vector基本使用 \r\n6-2-1 判断vector是否空 \r\n6-2-2 使用循环遍历成员 \r\n6-2-3 使用迭代器 \r\n6-2-4 使用算法 \r\n6-3 vector高级编程技术 \r\n6-3-1 vector对象的查找 \r\n6-3-2 vector对象的搜索 \r\n6-3-3 vector字符串处理 \r\n6-3-4 vector的排序 \r\n6-3-5 vector元素增加\r\n6-3-6 vector元素删除\r\n6-3-7 vector对象交换\r\n6-4 vector程序综合实例分析\r\n6-5 小结 \r\n\r\n第七章 deque技术编程详解\r\n\r\n7-1 deque 编程入门 \r\n7-1-1 deque的定义 \r\n7-1-2 deque赋值 \r\n7-1-3 deque大小度量函数 \r\n7-1-4 返回函数 \r\n7-2 deque 编程深入 \r\n7-2-1 判断容器是否为空 \r\n7-2-2 deque访问 \r\n7-2-3 deque重置技术 \r\n7-2-4 容器内容交换 \r\n7-3 deque插入和删除技术 \r\n7-3-1 insert操作 \r\n7-3-2 erase操作 \r\n7-3-3 clear操作 \r\n7-4 deque模板函数详解 \r\n7-4-1 operator[] \r\n7-4-2 operator== \r\n7-4-3 operator< \r\n7-4-4 operator!=\r\n7-4-5 operator<=\r\n7-4-6 operator> \r\n7-4-7 operator>=\r\n7-5 deque实例详解\r\n7-6 小结\r\n\r\n第八章 list技术编程详解\r\n\r\n8-1 list编程入门 \r\n8-1-1 list的定义 \r\n8-1-2 list赋值 \r\n8-1-3 list大小度量函数 \r\n8-1-4 返回函数 \r\n8-2 list 编程详解 \r\n8-2-1 判断容器是否为空 \r\n8-2-2 list访问 \r\n8-2-3 list重置技术 \r\n8-2-4 容器内容交换 \r\n8-3 list插入和删除技术 \r\n8-3-1 insert操作 \r\n8-3-2 erase操作 \r\n8-3-3 clear操作 \r\n8-4 list模板函数详解 \r\n8-4-1 operator== \r\n8-4-2 operator< \r\n8-4-3 operator!=\r\n8-4-4 operator<=\r\n8-4-5 operator> \r\n8-4-6 operator>=\r\n8-5 list特殊函数\r\n8-5-1 merge()函数的使用 \r\n8-5-2 remove() \r\n8-5-3 remove_if() \r\n8-5-4 sort() \r\n8-5-5 splice() \r\n8-5-6 unique() \r\n8-6 list实例详解\r\n8-7 小结 \r\n\r\n第九章set和multiset技术编程详解\r\n\r\n9-1 set和multiset定义和创建 \r\n9-1-1 set类模板简介 \r\n9-1-2 multiset类模板简介 \r\n9-2 set和multiset编程基础\r\n9-2-1 begin函数 \r\n9-2-2 end 函数 \r\n9-2-3 rbegin函数\r\n9-2-4 rend函数 \r\n9-2-5 判断空函数\r\n9-2-6 计算大小函数 \r\n9-2-7 元素的插入 \r\n9-2-8 元素的删除操作 \r\n9-3 set和multiset编程深入 \r\n9-3-1 count函数 \r\n9-3-2 元素的查找\r\n9-3-3 上下限迭代器的返回 \r\n9-3-4 元素的随机访问 \r\n9-3-5 元素大小比较 \r\n9-3-6 获取内存分配器\r\n9-4 set和multiset编程实例 \r\n9-5 小结 \r\n\r\n第十章 map和multimap技术编程详解\r\n\r\n10-1 map和multimap定义和使用 \r\n10-1-1 map类模板简介 \r\n10-1-2 multimap类模板简介 \r\n10-2 map和multimap编程基础\r\n10-2-1 begin函数 \r\n10-2-2 end 函数 \r\n10-2-3 rbegin函数\r\n10-2-4 rend函数 \r\n10-2-5 判断空函数\r\n10-2-6 计算大小函数 \r\n10-2-7 元素的插入 \r\n10-2-8 元素的删除操作 \r\n10-2-9 元素的交换 \r\n10-3 map和multimap编程深入 \r\n10-3-1 count函数 \r\n10-3-2 元素的查找\r\n10-3-3 元素相等时上下限迭代器的返回 \r\n10-3-4 元素的随机访问 \r\n10-3-5 元素大小比较 \r\n10-3-6 获取内存分配器\r\n10-4 编程实例 \r\n10-5 小结 \r\n\r\n第四篇 C++ STL算法技术\r\n\r\n第十一章 通用算法技术\r\n\r\n11-1 通用算法技术简介 \r\n11-2 非修正序列算法 \r\n11-2-1 查找容器中相同的相邻元素 \r\n11-2-2 容器中相同元素统计 \r\n11-2-3 容器对象变量比较 \r\n11-2-4 元素查找 \r\n11-2-5 特定的循环操作 \r\n11-2-6 不相等元素查找 \r\n11-2-7 采用search查找函数 \r\n11-3 修正序列算法 \r\n11-3-1 元素复制 \r\n11-3-3 赋值操作 \r\n11-3-4 通过函数进行元素的赋值 \r\n11-3-5 容器拆分技术 \r\n11-3-6 重新随机分布 \r\n11-3-7 元素删除 \r\n11-3-8 元素替换 \r\n11-3-9 元素的旋转\r\n11-3-10 元素颠倒算法 \r\n11-3-11 元素交换算法 \r\n11-3-12 容器运算技术 \r\n11-3-13 删除容器中重复元素 \r\n11-4 排序算法 \r\n11-4-1 排序算法\r\n11-4-2 排序元素的查找 \r\n11-4-3 字典式比较 \r\n11-4-4 极值元素求解\r\n11-4-5 合并排序算法\r\n11-4-6 拆分排序 \r\n11-4-7 堆栈操作技术 \r\n11-5 数值算法 \r\n11-5-1 元素求和\r\n11-5-2 元素内积\r\n11-5-3 序列相邻差\r\n11-6 小结