根据内容可以把C++标准库分为10类:
1:语言支持
2:输入/输出
3:诊断功能
4:通用工具
5:字符串
6:容器
7:迭代器
8:算法
9:数值操作
10:本地化
C++标准库的组成:
所有的头文件都没有扩展名(.h),总共有51个标准头文件。其中包含18个<cname>形式的头文件(不包含<complex>)
内容与标准C语言的name.h头文件相同。但是包含了C++扩展的功能。
在<cname>形式的头文件中,与宏相关的名称在全局作用域中定义,其它名称在std命名空间中声明。此外,在C++中还可以使用name.h形式的C语言头文件,但是这样并不被提倡。
C++标准库索引
1:语言支持
C标准定义 <cstddef> ;C++数值类型特性 <limits>;整型大小 <climits>; 浮点型特性 <cfloat>;
C标准实用工具 <cstdlib> ;动态内存管理 <new>;运行时类型信息 <typeinfo>; 异常处理 <exception>;
可变参数 <cstdarg> ;非局部跳转 <csetjmp>;C中断处理 <csignal>
2:输入/输出
标准输入输出 <iostream>; 输入输出操纵器 <iomanip>;
iostream基类 <ios>; 输入输出前向声明 <iosfwd>;
输入流类 <istream>; 输出流类 <ostream>;
字符串流类 <sstream>; 文件流类 <fstream>;
流缓存类 <streambuf>; C标准输入输出 <cstdio>;
3:诊断功能
异常类 <stdexcept>; C断言验证 <cassert>;C出错码 <cerrno>;
4:通用工具
实用元件 <utility> ;函数对象 <functional>;
内存管理器 <memory> ;C时间日期 <ctime>;
5:字符串
字符串类 <string>; C字符串 <cstring>;
单字节字符类型 <cctype>; 多字节字符类型 <cwctype>;
扩展多字节宽字符 <cwchar>; C字符串流类 <strstream>;
6:容器
向量 <vector> ;列表 <list>;
双队列 <deque> ;队列 <queue>;
栈 <stack> ;映射 <map>;
集合 <set>; 位集 <bitset>;
7:迭代器
迭代器 <iterator>
8:算法
算法 <algorithm> ISO646字符集替换 <ciso646>
9:数值操作
复数 <complex> ;数值矢量 <valarray>;
数学运算 <numeric>;C数学库 <cmath>;
10:本地化
本地化 <locale>; C语言本地化 <clocale>;
C++标准库的构成:
(1)C库:由C标准库扩展而来,强调结构、函数和过程,不支持面向对象技术。
(2)C++库:增加了面向对象的库,包含了具有关键功能的类。
(3)标准模板库(STL):高效的C++程序库。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。
注意:以上库文件都被定义在namespace std中。
C++库可以不规定头文件的扩展名。
1. C标准库
1)<cmath>:提供给了22个不同的数学函数,如abs()、sqrt()、exp()等。
详情请转:http://www.cplusplus.com/reference/cmath/
2)<cstdlib>:提供了常用的数学函数,3个特殊函数和2个常量。exit() :退出程序,清除静态对象。
abort() :强制退出程序。
atexit() :将一个函数作为参数并在程序退出时调用。
EXIT_SUCCESS :程序已经正常完成。
EXIT_FAULURE :程序正常结束。
详细参考:http://www.cplusplus.com/reference/cstdlib/
3)<cassert>:定义了一个函数assert,用来测试一个条件,并在条件为假时强制程序退出。通常用来判断内存分配是否成功。
4)<cctype>:提供了确定字符类型的功能。可以判断一个字符是否为数字字符、图形字符、小写、大写或空格,并可以将字符进行大小写转换。
详细介绍:http://www.cplusplus.com/reference/cctype/
5)<cerrno>:定义了一个变量,用它可以确定程序中发生的错误的类型。
2. C++类库
1)<string>:支持字符串处理的类库。
详情参考:http://www.cplusplus.com/reference/cstring/
2)<complex>:提供了复数的表示和算法。float_complex类
double_conmplex类
long_double_complex类
详情参考:http://www.cplusplus.com/reference/complex/
3)<ios>:定义了I/O流类的虚基类ios,通常不直接用它。
详情参考:http://www.cplusplus.com/reference/ios/
4)<iostream>:标准I/O流类库,提供了cin、cout等全局对象类来支持输入输出功能。
详情参考:http://www.cplusplus.com/reference/iostream/
5)<istream>:输入流类库。
详情参考:http://www.cplusplus.com/reference/istream/
6)<ostream>:输出流类库。
详情参考:http://www.cplusplus.com/reference/ostream/
7)<fstream>:读写文件的类。
详情参考:http://www.cplusplus.com/reference/fstream/
3. 标准模板库STL
在标准库中,容器、迭代器、算法和数值操作合称为标准模板库。
STL被组织为以下13个头文件:<algorithm>、<deque>、
<functional>、<iterator>、<vector>、<list>、<map>、
<memory>、<numeric>、<queue>、<set>、<stack>和<utility>。
几乎所有的标准模板库代码都采用了类模板和函数模板的形式,因此相比于传统的由函数和类组成的库来说STL提供了更好的代码重用。
1)<algorithm>:提供给了通用的算数算法和STL的一般算法。
sort :以升序重新排列范围内的元素。
swap :交换存储在两个对象中的值。
max_element :指出序列中最大的元素。
find :对范围内的元素进行查找 。
copy :复制序列。
replace :将范围内的所有等于 old_value 的元素都用 new_value 替代。
详细介绍:http://www.cplusplus.com/reference/algorithm/
2)<numeric>:提供给了4类对序列进行数字处理的算法。
accumulate():累加
product():内乘
Partial_sum():部分和
adjacent_difference():邻接差值
详细请看:http://www.cplusplus.com/reference/numeric/
C++官网把C++标准库分为五部分:
1:C库
2:容器
3:输入\输出
4:多线程
5:其它