
C++ STL标准程序库开发指南 第2版封面

C++ STL标准程序库开发指南 第2版书签
作者: 闫常友 王敏
出版社: 中国铁道出版社
副标题: STL标准程序库开发指南
定价: 79元
装帧: 平装-胶订
ISBN: 9787113223779
内容简介
本书献给喜欢C++ STL的朋友,当您看见这本书时您应该对C++ STL已有一定的了解,希望继续深造;或者您已经暗下决心来学习它。那么本书将是您*的选择。如果您已经有了一些C/C++基础,那么学习起来会更加轻松。
目录
第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++中的字符串?
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章?容器?
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++中的算法?
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)?
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的数值计算?
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章?输入/输出流?
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章?异常处理?
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章?通用工具?
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章?语言支持?
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章?检测库详解?
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章?国际化库详解?
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章?仿函数?
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章?配置器?
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?
参考文献
代找资源网不售卖任何资源,只提供代找服务
QQ客服
微信客服

评论0