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

用了很长时间是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>
      为固定长度的位序列定义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

    


展开阅读全文

没有更多推荐了,返回首页