源:http://bbs.csdn.net/topics/300040713

C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。<cname>形式 的标准头文件【<complex>例外】其内容与ISO标准C包含的name.h头文件相同,但容纳了C++扩展的功能。 在<cname>形式标准的头文件中,与宏相关的名称在全局作用域中定义,其他名称在std命名空间中声明。在C++中还可以使用 name.h形式的标准C库头文件名。

C++标准库的内容分为10类:

C1.语言支持 C2.输入/输出 C3.诊断 C4.一般工具 C5.字符串

C6.容器 C7.迭代器支持 C8.算法 C9.数值操作 C10.本地化

C1 标准库中与语言支持功能相关的头文件 头文件  描述  
<cstddef> 定义宏NULL和offsetof,以及其他标准类型size_t和ptrdiff_t。与对应的标准C头文件的区别
是,NULL是C++空指针常量的补充定义,宏offsetof接受结构或者联合类型参数,只要他们没有成员指针类型的非静态成员即可。 
<limits> 提供与基本数据类型相关的定义。例如,对于每个数值数据类型,它定义了可以表示出来的最大值和最小值以及二进制数字的位数。 
<climits> 提供与基本整数数据类型相关的C样式定义。这些信息的C++样式定义在<limits>中 
<cfloat> 提供与基本浮点型数据类型相关的C样式定义。这些信息的C++样式定义在<limits>中 
<cstdlib> 提供支持程序启动和终止的宏和函数。这个头文件还声明了许多其他杂项函数,例如搜索和排序函数,从字符串转换为数值等函
数。它与对应的标准C头文件stdlib.h不同,定义了abort(void)。abort()函数还有额外的功能,它不为静态或自动对象调用析构函
数,也不调用传给atexit()函数的函数。它还定义了exit()函数的额外功能,可以释放静态对象,以注册的逆序调用用atexit()注册的函
数。清除并关闭所有打开的C流,把控制权返回给主机环境。 
<new> 支持动态内存分配 
<typeinfo> 支持变量在运行期间的类型标识 
<exception> 支持异常处理,这是处理程序中可能发生的错误的一种方式 
<cstdarg> 支持接受数量可变的参数的函数。即在调用函数时,可以给函数传送数量不等的数据项。它定义了宏va_arg、va_end、va_start以及va_list类型 
<csetjmp> 为C样式的非本地跳跃提供函数。这些函数在C++中不常用 
<csignal> 为中断处理提供C样式支持

C2 支持流输入/输出的头文件 头文件  描述  
< iostream> 支持标准流cin、cout、cerr和clog的输入和输出,它还支持多字节字符标准流wcin、wcout、wcerr和wclog。 
<iomanip> 提供操纵程序,允许改变流的状态,从而改变输出的格式。 
<ios> 定义iostream的基类 
<istream> 为管理输出流缓存区的输入定义模板类 
<ostream> 为管理输出流缓存区的输出定义模板类 
<sstream> 支持字符串的流输入输出 
<fstream> 支持文件的流输入输出 
<iosfwd> 为输入输出对象提供向前的声明 
<streambuf> 支持流输入和输出的缓存 
<cstdio> 为标准流提供C样式的输入和输出 
<cwchar> 支持多字节字符的C样式输入输出

C3 与诊断功能相关的头文件 头文件 描述 
<stdexcept> 定义标准异常。异常是处理错误的方式 
<cassert> 定义断言宏,用于检查运行期间的情形 
<cerrno> 支持C样式的错误信息

C4 定义工具函数的头文件 头文件 描述 
<utility> 定义重载的关系运算符,简化关系运算符的写入,它还定义了pair类型,该类型是一种模板类型,可以存储一对值。这些功能在库的其他地方使用 
<functional> 定义了许多函数对象类型和支持函数对象的功能,函数对象是支持operator()()函数调用运算符的任意对象 
<memory> 给容器、管理内存的函数和auto_ptr模板类定义标准内存分配器 
<ctime> 支持系统时钟函数

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

C6 定义容器类的模板的头文件 头文件 描述 
<vector> 定义vector序列模板,这是一个大小可以重新设置的数组类型,比普通数组更安全、更灵活 
<list> 定义list序列模板,这是一个序列的链表,常常在任意位置插入和删除元素 
<deque> 定义deque序列模板,支持在开始和结尾的高效插入和删除操作 
<queue> 为队列(先进先出)数据结构定义序列适配器queue和priority_queue 
<stack> 为堆栈(后进先出)数据结构定义序列适配器stack 
<map> map是一个关联容器类型,允许根据键值是唯一的,且按照升序存储。multimap类似于map,但键不是唯一的。 
<set> set是一个关联容器类型,用于以升序方式存储唯一值。multiset类似于set,但是值不必是唯一的。 
<bitset> 为固定长度的位序列定义bitset模板,它可以看作固定长度的紧凑型bool数组

C7 支持迭代器的头文件 头文件 描述 
<iterator> 给迭代器提供定义和支持

C8 有关算法的头文件 头文件 描述 
<algorithm> 提供一组基于算法的函数,包括置换、排序、合并和搜索 
<cstdlib> 声明C标准库函数bsearch()和qsort(),进行搜索和排序 
<ciso646> 允许在代码中使用and代替&&

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

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

cpp 标准库的更多相关文章

  1. CPP标准模板库 随笔

    对于无序容器而言,其次序是不固定的,就算添加一个元素,也可能全盘改变次序.唯一可以保证的是,内容相同的元素会相邻.(eg: 23,1,1,25,3,27,5,7,11,11) 迭代器的种类: 1,前向 ...

  2. 《C标准库》—之<assert.h>实现

    首先,贴出标准库中<assert.h>的实现源码: #undef assert #ifdef NDEBUG #define assert(test)((void)0) #else void ...

  3. [C/C++标准库]_[0基础]_[交集和补集]

    场景: 1. 计算std::vector A和 std::vector B里的同样的元素, 用于保留不删除. 2. 计算std::vector A和 std::vector B里各自的补集, 用于删除 ...

  4. C/C++基础----标准库几个工具库tuple,bitset,正则表达式,随机数,IO库

    tuple tuple可以有任意多个成员 默认初始化,值初始化 构造函数是explicit,必须直接初始化 make_tuple(v1,v2,-,vn) get<i> (t) 返回第i个数 ...

  5. 通过atomic_flag简单自旋锁实现简单说明标准库中锁使用的memory_order

    在使用标准库中的加锁机制时,例如我们使用std::mutex,写了如下的代码(下面的代码使用condition_variable可能更合适) std::mutex g_mtx; int g_resNu ...

  6. [C/C++标准库]_[初级]_[转换UTC时间到local本地时间]

    场景 1.如果有面向全球用户的网站, 一般在存储时间数据时存储的是UTC格式的时间, 这样时间是统一的, 并可以根据当地时区来进行准确的转换. 2.存储本地时间的问题就在于如果换了时区, 那么显示的时 ...

  7. 怎么使用C++标准库来实现二维数组

    在编程里,像界面布局是二维的,那么常常使用二维数组来表示界面的元素,那么就需要使用二维的数组,在现在C++肯定是以标准库为基础了,不再使用C的二维数组,那么怎么样做呢?下面就使用vector来实现二维 ...

  8. [并发并行]_[C/C++]_[C++标准库里的线程安全问题]

    场景 1.写普通的程序时, 经常会使用cout来做输出, 每个进程只有一个控制台, 如果多线程调用cout时会出状况吗? 2.之所以研究cout会不会在并发下调用有问题, 是因为曾经有一个bug的崩溃 ...

  9. C++解析(18):C++标准库与字符串类

    0.目录 1.C++标准库 2.字符串类 3.数组操作符的重载 4.小结 1.C++标准库 有趣的重载--操作符 << 的原生意义是按位左移,例:1 << 2;,其意义是将整数 ...

随机推荐

  1. C# winfrom容器布局与工具栏&&右键菜单栏&&隐藏显示小图标的的简单事件

    前两天的时候学习了winfrom,简单地说就是各种布局,然后给按钮,textbox等各种控件添加各种事件的操作,经过前天一晚上,昨天一天的练习操作的还算熟练,但是对构造函数传值还是不是很了解,由于各种 ...

  2. MVC之 自定义过滤器(ActionFilterAttribute)

    一.自定义Filter 自定义Filter需要继承ActionFilterAttribute抽象类,重写其中需要的方法,来看下ActionFilterAttribute类的方法签名. //表示所有操作 ...

  3. Fiddler安装证书

    1.打开Fiddler,点击工具栏中的Tools——>Fiddler Options…       2.切换到 HTTPS 选项卡,勾选 Capture HTTPS CONNECTs,勾选 De ...

  4. The 2018 ACM-ICPC Asia Beijing Regional Contest

    http://hihocoder.com/problemset/problem/ #1870 : Jin Yong’s Wukong Ranking List 我是每加1个点就dfs判断1次. 正解是 ...

  5. Oracle 在JDBC中使用 存储过程,包

      前提: 在Oracle中已经定义  存储过程  和  存储函数 和  包 导入了Oracle的JDBC   jar  包 package demo; import java.sql.Connect ...

  6. adb导出安卓 把手机内存文件导入到电脑里 adb安装软件

    记得先找对路劲adb shellls 最上面的ls: ./ 打头的没有权限.而下面的这些acct sdcard等 都有权限. 然后cd sdcardls 看下目录,发现gxm文件夹在sdcard下面. ...

  7. python: 基本知识记录

    1.图像输入输出操作 scikit-image: 图像输入输出库: 2.pyqt5库的安装: 对于python2.x, 使用pip install python-qt5即可以自动安装: 3.文件编码: ...

  8. 解析:为什么程序员应该有一台Mac个人电脑?

    对于开发来讲,使用Mac电脑的好处,下面简单列举几个: 首先,macOS很安全和稳定,Mac 系统的底层是最原始的unix操作系统,很多大型的银行和军工企业都是这个操作系统,安全性很高,基本不需要安装 ...

  9. 简洁架构的思想,基于go实现

    https://manuel.kiessling.net/2012/09/28/applying-the-clean-architecture-to-go-applications/ 从 Clean- ...

  10. CrawlSpiders模块的使用

    创建文件模板 scrapy genspider -t crawl tencent tencent.com CrawlSpiders就是为爬取整站孕育而生的,我们以前是分页下一页,然后再yied.这样太 ...