您的位置:首页 > 编程语言 > C语言/C++

标准c++库和stl库,boost库,qt库的总结(一)

2015-05-30 07:31 393 查看
用了很长时间是stdio iostream 等头文件,一直有个疑惑,也用了很长一段是键的stl标准库中个别的类,间接性的知道了boost库,qt库等一系列的库

昨天在有用到#include<IOSTREAM>头文件的时候,想起了istream ostream fstream这些类到底在c++标准中占什么位置,记得在大脑中一直将他们定性到c++标准库,有忽然想起了stl标准模板库里面各个分类里没有包含io这个类别的,于是在网上收集了很多关于这方面的名称解释,顺便的将网络上常用的boost库,qt库等做个解释,一并了解这方面

1:标准c++库和stl库

     理解两个库,大致就一句话:stl是c++标准库的一个子集,c++的标准库主要有三部分:c标准库的c++版本;c++的IO库;c++的STL库

     C标准库的c++版本:原来的c版本是<*.h>,c++版本是<c*>

     C++的IO库:最常用的是iostream,fstream

     C++的stl库:下面会详细理解

      c++标准库百度百科上给的解释:

      它是类库和函数的集合,其使用核心语言写成,由c++标准委员会制定,并不断的维护和更新的库,c++的标准库文件总共在50个标准头文件中定义,

      在c++的开发中尽量的使用标准库的好处:

      1、成本低 2、质量 3、效率 4、良好的编程风格 

      标准库分为10类:

   C++标准库

  1、标准库中与语言支持功能相关的头文件

    1、<cstddef>

      定义宏NULL和Offsetof,以及其他标准类型的size_t和ptrdiff

    2、<limits>

      提供与基本数据类型相关的定义。例如,对于每个数值数据类型,它定义了可以表示出来的最大值和最小值以及二进制数字的位数。

    3、<climits>

      提供了与基本整数数据类型相关的C样式定义。这些信息的c++样式定义在<limits>中

    4、<cfloat>

      提供与基本浮点型数据相关的C样式定义。这些c++的样式定义在<limits>中

    5、<cstdlib>

      提供支持程序启动和终止的宏和函数。这个头文件还声明了许多其他杂项函数,例如搜索和排序函数,从字符串转换成数值的函数, 他与对应的标准c头文件stdlib.H不同,定义了abort(VOID).abort函数还有额外的功能,它不为静态或者自动对象调用析构函数,也不调用 atexit()函数,它还定义了exit()函数的额外功能,可以释放静态对象,以注册的逆序调用用atexit注册的函数。清楚并关闭所打开的c流,把 控制权返回给主机环境

    6、<new>

      支持动态内存分配

    7、<typeinfo>

      支持变量在运行期间的类型标识

    8、<exception>

      支持异常处理,这是处理程序中可能发生的错误的一种方式

    9、<cstdarg>

      支持接收数量可变的参数的函数,记载调用函数时,可以给函数传送数量不等的数据项,他定义了宏va_arg,va_end,va_start,以及va_list类型

    10、<csetjmp>

      为c样式的非本地跳跃提供函数。这些函数在c++中不常用

    11、<csignal>

      为中断处理体从c样式支持

  2、支持流输入输出的头文件

    1、<iostream>

      支持标准流cin、cout、cerr和clog的输入和输出,并且支持多字节的输入输出

    2、<iomanip>

      提供操纵程序,允许改变流的状态,从而改变输出的格式

    3、<ios>

      定义iostream的基类

    4、<istream>

      为管理输出流缓存区的输出定义模板类

    5、<ostream>

      为管理输出流缓存区的输出定义模板类

    6、<sstream>

      支持字符串的流输入输出

    7、<fstream>

      支持文件流输入输出

    8、<iosfwd>

      为输入输出对象提供 向前的声明

    9、<streambuf>

      支持流输入和输出的缓存

    10、<cstdio>

      为标准流提供c样式的输入输出

    11、<cwchar>

      支持多字节字符的输入输出

  3、与诊断功能相关的头文件

    1、<stdexcept>

      定义标准异常。异常时处理错误的方式

    2、<cassert>

      定义断言宏,用于检查运行期间的情形

    3、<cerrno>

      支持c样式的错误信息

  4、定义工具函数的头文件

    1、<utility>

      定义重载的关系运算符,简化关系运算符的写入,它还定义了pair类型

    2、<functional>

      定义了许多函数对象类型和支持函数对象的功能,函数对象是支持operator()函数调用运算符的任意对象

    3、<memory>

      给容器、管理内存的函数和auto_ptr模板类定义标准内存分配器

    4、<ctime>

      支持系统时钟函数

  5、支持字符串处理的头文件

    1、<string>

      为字符串类型提供支持和定义

    2、<cctype>

      单字节字符类别

    3、<cwctype>

      多字节字符类别

    4、<cstring>

      为处理非空字节序列和内存块提供函数,这不同于对用的标准的c库头文件, 几个c样式字符串的一般c库函数被返回值为const和非const的函数对替代了

    5、<cwchar>

      为处理执行I/O和转换多字节序列提供函数,这不同于对应的标准c库头文件

    6、<cstdlib>

      为把单字节字符串转换为数值、在多字节字符和多字节字符串之间提供函数

  6、定义容器类的模板的头文件

    1、<vertor>

      定义vector序列模板,这是一个大小可以重新设置的数组类型,比普通的数组更安全,更灵活

    2、<list>

      定义list序列模板,这是一个序列的链表,常常在任意位置插入和删除元素

    3、<deque>

      定义deque序列模板,支持在开始和结尾的高效插入和删除操作

    4、<queue>

      为队列(先进先出)数据结构定义序列适配器queue和priority_queue

    5、<stack>

      为堆栈(后进先出)数据结构定义序列适配器stack

    6、<map>

      map是一个关联容器类型,允许根据键值是唯一的,且按照升序存储。

    7、<set>

      set是一个关联容器类型,用于以升序方式存储唯一值。

    8、<bitset>

      为固定长度的
a181
位序列定义bitset模板,它可以看做固定长度紧凑型bool数组

  7、支持迭代器的头文件

    1、<iterator>

      给迭代器提供定义和支持

  8、有关算法的头文件

    1、<algorithm>

      提供一组给予算法的函数,包括置换、排序、合并和搜索

    2、<cstdlib>

      声明C标准库函数bsearch()和qsort(),进行搜索和排序

    3、<ciso646>

      允许在代码中使用and代替&&

  9、有关数值操作的头文件

    1、<complex>

      支持复杂数值的定义和操作

    2、<valarray>

      支持数值矢量的操作

    3、<numeric>

      在数值序列上定义一组一般数学操作

    4、<cmath>

      这是c数学库,其中还附加了重载函数,以支持c++约定

    5、<cstdlib>

      提供的函数可以提取整数的绝对值,对整数进行取余数操作

  10、有关本地化的头文件

    1、<locale>

      提供的本地化包含字符类别,排序序列以及货币和日期表示

    2、<clocale>

      对本地化提供c样式支持

    将上面做成了pdf类似框架图的格式

大致的了解了一下标准库;后面再详细所stl

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ STL QT BOOST