C++标准库介绍

更新时间:2023-03-18 20:21:01 阅读量: 人文社科 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

标准库_标准库简介
简介摘要:C++标准库简介 C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 <cname>形式的标准头文件【 <complex>例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。在 <cname>形式标准的头文件中,与宏相关的
C++标准库[biao zhun ku]简介
C++标准库[biao zhun ku]的所有头文件[wen jian]都没有扩展[kuo zhan]名。C++标准库[biao zhun ku]的内容总共在50个标准头文件[wen jian]中定义,其中18个提供了C库的功能。 <cname>形式的标准头文件[wen jian]【 <complex>例外】其内容与ISO标准C包含的name.h头文件[wen jian]相同,但容纳了C++扩展[kuo zhan]的功能。在 <cname>形式标准的头文件[wen jian]中,与宏相关的名称在全局作用[zuo yong]域[zuo yong yu]中定义,其他名称在std命名空间[kong jian][ming ming kong jian]中声明[sheng ming]。在C++中还可以使用name.h形式的标准C库头文件[wen jian]名[wen jian ming]。

C++标准库[biao zhun ku]的内容分为10类:

C1.语言[yu yan]支持[zhi chi] C2.输入[shu ru]/输出[shu chu] C3.诊断[zhen duan] C4.一般工具 C5.字符[zi fu]串[zi fu chuan]

C6.容器 C7.迭代[die dai]器[die dai qi]支持[zhi chi] C8.算法[suan fa] C9.数值操作 C10.本地化


C1 标准库[biao zhun ku]中与语言[yu yan]支持[zhi chi]功能相关的头文件[wen jian] 头文件[wen jian] 描述
<cstddef> 定义宏NULL和offsetof,以及其他标准类型[lei xing]size_t和ptrdiff_t。与对应的标准C头文件[wen jian]的区别是,NULL是C++空指针[zhi zhen][kong zhi zhen]常量[chang liang]的补充定义,宏offsetof接受结构[jie gou]或者联合类型[lei xing]参数[can shu][lei xing can shu],只要他们没有成员指针[zhi zhen]类型[lei xing]的非静态成员[jing tai cheng yuan]即可。
<limits> 提供与基本数据[shu ju]类型[lei xing][shu ju lei xing]相关的定义。例如,对于每个数值数据[shu ju][shu zhi shu ju]类型[lei xing],它定义了可以表示出来的最大值和最小值以及二进制[er jin zhi]数字[shu zi][er jin zhi shu zi]的位数。
<climits> 提供与基本整数数据[shu ju]类型[lei xing][shu ju lei xing]相关的C样式定义。这些信息[xin xi]的C++样式定义在 <limits>中
<cfloat> 提供与基本浮点型数据[shu ju]类型[lei xing][shu ju lei xing]相关的C样式定义。这些信息[xin xi]的C++样式定义在 <limits>中
<cstdlib> 提供支持[zhi chi]程序[zhi chi cheng xu]启动[qi dong]和终止的宏和函数[han shu]。这个头文件[wen jian]还声明[sheng
ming]了许多其他杂项函数[han shu],例如搜索[sou suo]和排序[pai xu]函数[han shu],从字符[zi fu]串[zi fu chuan]转换[zhuan huan]为数值等函数[han shu]。它与对应的标准C头文件[wen jian]stdlib.h不

同,定义了abort(void)。abort()函数[han shu]还有额外的功能,它不为静态或自动对象[dui xiang]调用[tiao yong]析构[xi gou]函数[han shu][xi gou han shu],也不调用[tiao yong]传给atexit()函数[han shu]的函数[han shu]。它还定义了exit()函数[han shu]的额外功能,可以释放[shi fang]静态对象[dui xiang],以注册[zhu ce]的逆序调用[tiao yong]用atexit()注册[zhu ce]的函数[han shu]。清除[qing chu]并关闭所有打开的C流,把控制[kong zhi]权返回给主机[zhu ji]环境。
<new> 支持[zhi chi]动态[dong tai]内存[nei cun]分配[fen pei]
<typeinfo> 支持[zhi chi]变量[bian liang]在运行[yun hang]期间的类型[lei xing]标识[biao shi]
<exception> 支持[zhi chi]异常[yi chang]处理[yi chang chu li],这是处理程序[chu li cheng xu]中可能发生的错误[cuo wu]的一种方式
<cstdarg> 支持[zhi chi]接受数量可变的参数[can shu]的函数[han shu]。即在调用[tiao yong]函数[han shu]时,可以给函数[han shu]传送[chuan song]数量不等的数据[shu ju]项[shu ju xiang]。它定义了宏va_arg、va_end、va_start以及va_list类型[lei xing]
<csetjmp> 为C样式的非本地跳跃提供函数[han shu]。这些函数[han shu]在C++中不常用
<csignal> 为中断[zhong duan]处理[zhong duan chu li]提供C样式支持[zhi chi]

C2 支持[zhi chi]流输入[shu ru]/输出[shu chu]的头文件[wen jian] 头文件[wen jian] 描述
< iostream> 支持[zhi chi]标准流cin、cout、cerr和clog的输入[shu ru]和输出[shu chu],它还支持[zhi chi]多字节[duo zi jie]字符[zi fu]标准流wcin、wcout、wcerr和wclog。
<iomanip> 提供操纵程序,允许改变流的状态[zhuang tai],从而改变输出[shu chu]的格式。
<ios> 定义iostream的基类[ji lei]
<istream> 为管理输出[shu chu]流[shu chu liu]缓存[huan cun]区的输入[shu ru]定义模板类
<ostream> 为管理输出[shu chu]流[shu chu liu]缓存[huan cun]区的输出[shu chu]定义模板类
<sstream> 支持[zhi chi]字符[zi fu]串[zi fu chuan]的流输入[shu ru]输出[shu chu][shu ru shu chu]
<fstream> 支持[zhi chi]文件[wen jian]的流输入[shu ru]输出[shu chu][shu ru shu chu]
<iosfwd> 为输入[shu ru]输出[shu chu][shu ru shu chu]对象[dui xiang]提供向前的声明[sheng ming]
<streambuf> 支持[zhi chi]流输入[shu ru]和输出[shu chu]的缓存[huan cun]
<cstdio> 为标准流提供C样式的输入[shu ru]和输出[shu chu]
<cwchar> 支持[zhi chi]多字节[duo zi jie]字符[zi fu]的C样式输入[shu ru]输出[shu chu][shu ru shu chu]

C3 与诊断[zhen duan]功能相关的头文件[wen jian] 头文件[wen jian] 描述
<stdexcept> 定义标准异常[yi chang]。异常[yi chang]是处理错误[cuo wu]的方式
<cassert> 定义断
言[duan yan]宏,用于[yong yu]检查运行[yun hang]期间的情形
<cerrno> 支持[zhi chi]C样式的错误[cuo wu]信息[xin xi]

C4 定义工具函数[han shu]的头文件[wen jian] 头文件[wen jian

] 描述
<utility> 定义重载[zhong zai]的关系运算[yun suan]符,简化关系运算[yun suan]符的写入,它还定义了pair类型[lei xing],该类型[lei xing]是一种模板类型[lei xing],可以存储一对值。这些功能在库的其他地方使用
<functional> 定义了许多函数[han shu]对象[dui xiang]类型[lei xing]和支持[zhi chi]函数[han shu]对象[dui xiang]的功能,函数[han shu]对象[dui xiang]是支持[zhi chi]operator()()函数[han shu]调用[tiao yong][han shu tiao yong]运算[yun suan]符的任意对象[dui xiang]
<memory> 给容器、管理内存[nei cun]的函数[han shu]和auto_ptr模板类定义标准内存[nei cun]分配[fen pei]器
<ctime> 支持[zhi chi]系统[xi tong][zhi chi xi tong]时钟[shi zhong]函数[han shu]

C5 支持[zhi chi]字符[zi fu]串[zi fu chuan]处理的头文件[wen jian] 头文件[wen jian] 描述
<string> 为字符[zi fu]串[zi fu chuan]类型[lei xing]提供支持[zhi chi]和定义,包括单字节字符[zi fu]串[zi fu chuan](由char组成)的string和多字节[duo zi jie]字符[zi fu]串[zi fu chuan](由wchar_t组成)
<cctype> 单字节字符[zi fu]类别
<cwctype> 多字节[duo zi jie]字符[zi fu]类别
<cstring> 为处理非空字节序列和内存[nei cun]块提供函数[han shu]。这不同于对应的标准C库头文件[wen jian],几个C样式字符[zi fu]串[zi fu chuan]的一般C库函数[han shu]被返回值为const和非const的函数[han shu]对替代了
<cwchar> 为处理、执行[zhi hang]I/O和转换[zhuan huan]多字节[duo zi jie]字符[zi fu]序列提供函数[han shu],这不同于对应的标准C库头文件[wen jian],几个多字节[duo zi jie]C样式字符[zi fu]串[zi fu chuan]操作的一般C库函数[han shu]被返回值为const和非const的函数[han shu]对替代了。
<cstdlib> 为把单字节字符[zi fu]串[zi fu chuan]转换[zhuan huan]为数值、在多字节[duo zi jie]字符[zi fu]和多字节[duo zi jie]字符[zi fu]串[zi fu chuan]之间转换[zhuan huan]提供函数[han shu]

C6 定义容器类[rong qi lei]的模板的头文件[wen jian] 头文件[wen jian] 描述
<vector> 定义vector序列模板,这是一个大小可以重新设置[she zhi]的数组[shu zu]类型[lei xing],比普通数组[shu zu]更安全、更灵活
<list> 定义list序列模板,这是一个序列的链表[lian biao],常常在任意位置[wei zhi]插入和删除[shan chu]元素
<deque> 定义deque序列模板,支持[zhi chi]在开始和结尾的高效插入和删除[shan chu]操作
<queue> 为队列[dui lie](先进先出[xian jin xian chu])数据[shu ju]结构[jie gou][shu ju jie gou]定义序列适配器[shi pei qi]queue和priority_queue
<stack> 为堆栈[dui zhan](后进先出[hou jin xian c
hu])数据[shu ju]结构[jie gou][shu ju jie gou]定义序列适配器[shi pei qi]stack
<map> map是一个关联容器类[rong qi lei]型,允许根据键值是唯一的,且按照升序存储。multimap类似于map,但键不是唯

一的。
<set> set是一个关联容器类[rong qi lei]型,用于[yong yu]以升序方式存储唯一值。multiset类似于set,但是值不必是唯一的。
<bitset> 为固定长度的位序列定义bitset模板,它可以看作固定长度的紧凑型bool数组[shu zu]

C7 支持[zhi chi]迭代[die dai]器[die dai qi]的头文件[wen jian] 头文件[wen jian] 描述
<iterator> 给迭代[die dai]器[die dai qi]提供定义和支持[zhi chi]

C8 有关算法[suan fa]的头文件[wen jian] 头文件[wen jian] 描述
<algorithm> 提供一组基于算法[suan fa]的函数[han shu],包括置换、排序[pai xu]、合并和搜索[sou suo]
<cstdlib> 声明[sheng ming]C标准库[biao zhun ku]函数[han shu]bsearch()和qsort(),进行搜索[sou suo]和排序[pai xu]
<ciso646> 允许在代码[dai ma]中使用and代替&&

C9 有关数值操作的头文件[wen jian] 头文件[wen jian] 描述
<complex> 支持[zhi chi]复杂数值的定义和操作
<valarray> 支持[zhi chi]数值矢量的操作
<numeric> 在数值序列上定义一组一般数学操作,例如accumulate和inner_product
<cmath> 这是C数学库,其中还附加了重载[zhong zai]函数[han shu],以支持[zhi chi]C++约定[yue ding]
<cstdlib> 提供的函数[han shu]可以提取[ti qu]整数的绝对值,对整数进行取余数操作

C10 有关本地化的头文件[wen jian] 头文件[wen jian] 描述
<locale> 提供的本地化包括字符[zi fu]类别、排序[pai xu]序列以及货币和日期表示。
<clocale> 对本地化提供C样式支持[zhi chi]


本文来源:https://www.bwwdw.com/article/h1fj.html

Top