[C++STDlib基础]C++标准库概述

来源:互联网 发布:asp.net 获取当前域名 编辑:程序博客网 时间:2024/04/30 04:06

前言

C++标准库是个极为庞大的体系,因此面面俱到的介绍几乎是不可能的。而且任何一个系统都有其复杂的一面。我觉得即使是只介绍C的标准库其工作量也是巨大的,所以这次整理的内容只是从宏观入手。我觉得了解C++标准库有助于加深对C++的理解,因此我想整理一下自己的学习心得。也可以使大家从另一个角度认识一下C++

语法并不是一个语言的全部,学习一门语言的精力经常是放在他的库上,或者是内置库,或者是扩展库,或者是第三方库。不过精力应该放在学习库的用法上,而不是掌握库的结构或实现。大家应该了解,语法像C++这般复杂的语言是绝无仅有的,很多简单的语言,只要愿意,半个小时就能学尽它的语法,并且这种语言依然很有效。

标准库

从最宏观的层面上看,C++标准库由十个部分组成:语言支持,诊断,通用工具,字符串,本地化,容器,迭代器,通用算法,数值算法和IO

所有的标准库定义的东西,除了宏,operator new opreator delete,都在std或者是内嵌在std里的命名空间里。宏是预处理对象,它不在命名空间里是件很自然的事情,因此对宏的处理发生在编译前。

头文件

C++标准库的所有头文件都没有扩展名。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。来自C标准库的所有头文件,以另一根名称包含在C++标准中。将原名称移去”.h”并在开头处加上”C”作为新的名称。Eg:<time.h>改成<ctime>.C++标准库的头文件与C标准库的头文件的唯一区别是,函数位于std::命名空间中。

语言支持 (4)

<exception><limits><new><typeinfo>

容器 (8)

<bitset><deque><list><map><queue><set><stack><vector>

一般 (7)

<algorithm><functional><iterator><locale><memory><stdexcept><utility>

字符串 (1)

<string>

数值算法 (3)

<complex><numeric><valarray>

IO流 (9)

<fstream><ios><iostream><iosfwd><iomanip><istream><ostream><sstream><streambuf>

C标准库 (18)

<cassert><ccomplex><cctype><cerrno><cfloat><clocle><cmath><csetjmp><csignal><cstdarg><cstddef><cstdio><cstdint><cstdlib><cstring><ctime><cwchar><cwctype>

 经常使用的有:string,iostream,cstdlib,ctime,cmath,cstdio,ctring