C1语言支持C2输入/输出C3诊断功能
C4通用工具C5字符串C6容器
C7迭代器C8算法C9数值操作
C10本地化
2.C++标准库所有的头文件都没有扩展名(.h),内容总共在51个标准头文件中定义。其中18个<cname>形式的头文件(<complex>除外)内容与标准C语言的name.h头文件相同,但包含了C++扩展的功能。
在<cname>形式的头文件中,与宏定义相关的名称在全局作用域中定义,其他名称在std命名空间中声明。
另外,在C++中还可以使用name.h形式的C语言头文件,但不建议这样用。
表1C++标准库索引
C++标准库由三组库构成:
(1)C库:由C标准库扩展而来,强调结构、函数和过程,不支持面向对象技术。
(2)C++库:增加了面向对象的库,包含了既有关键功能的类
(3)标准模板库(STL):高效的C++程序库。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。
以上库文件都被定义在namespacestd中。
C++库可以不规定头文件的扩展名。
C标准库
1)<Cmath>:提供给了22个不同的数学函数,如abs()、sqrt()、exp()等。
2)<cstdlib>:提供了常用的数学函数,3个特殊函数和2个常量。
exit():退出程序,清除静态对象
abort():强制退出程序
atexit():将一个函数作为参数并在程序退出时调用
EXIT_SUCCESS:程序已经正常完成
EXIT_FAULURE:程序正常结束
3)<cassert>:定义了一个函数assert,用来测试一个条件,并在条件为假时强制程序退出。通常用来判断内存分配是否成功。
4)<cctype>:提供了确定字符类型的功能。可以判断一个字符是否为数字字符、图形字符、小写、大写或空格并可以将字符进行大小写转换。
5)<cerrno>:定义了一个变量,用它可以确定程序中发生的错误的类型。
C++类库
1)<string>:支持字符串处理的类库
2)<complex>:提供了复数的表示和算法
float_complex类
double_complex类
long_double_complex类
3)<ios>定义了I/O流类的虚基类ios,通常不直接用它。
4)<iostream>:标准I/O流类库,提供了cin、cout等全局对象类来支持输入输出功能
5)<istream>:输入流类库
6)<ostream>:输出流类库
7)<fstream>:读写文件的类
标准模板库STL
在标准库中,容器、迭代器、算法和数值操作合称为标准模板库。
STL被组织为以下13个头文件:<algorithm>,<deque>,<functional>,<iterator>,<vector>,<list>,<map>,<memory>,<numeric>,<queue>,<set>,<stack>,和<utility>。
几乎所有的标准模板代码采用了类模板和函数模板的形式,因此相比于传统的由函数和类组成的库来说STL提供了更好的代码重用。
<algothrithm>:提供了通用的算数算法和STL的一般算法。
sort:以升序重新排列范围内的元素
swap:交换存储在两个对象中的值
max_element:指出序列中最大的元素
find:对范围内的元素进行查找
copy:复制序列
replace:将范围内的所有等于old_value的元素都用new_value替代。
<numerialc>:提供了4类对序列进行数字处理的算法
accumulate:累加
product:内乘
partial_sum:部分和
adjacent_difference():邻接差值