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

2023-05-16

用了很长时间是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

    


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • printk在应用层的设置方式及读取内核打印信息的方法

    如果 printk 中没有加调试级别 xff0c 则使用默认的调试级别 注意 xff0c 调试级别和格式化字符串之间没有逗号 当前控制台的各打印级别可以通过下面的命令来查看 cat proc sys kernel printk 4 4 1
  • qt编译Qxlsx模块及安装

    主要参考如下地址 xff1a https www icode9 com content 4 715555 html 注意的点 xff1a 1 把下载的代码复制到根目录下 xff0c 路径不要有什么空格啥的 xff0c 否则你会发现perl老
  • GitLab 使用Tortoisegit询问“git@192.168.1.18‘s password“问题解决

    现象如下 xff1a 使用TortoiseGit去拉本地GitLab上建立的项目时 xff0c 一直提示输入密码 xff08 如下图 xff09 xff0c 这个密码又没有指定用户名 xff0c 就算你输入你用户名的密码也是失败 但是很诡异
  • 二代身份证读写器原理及开发

    身份证读写器的作用就是从身份证中读取身份信息 xff08 例如姓名 民族 身份证号等 xff09 xff0c 然后显示或者传输给其他模块使用 功能框架如下 xff1a 功能框图说明 xff1a 1 业务模块 负责向安全模块发送命令 xff0
  • JLINK V10 V11固件修复

    先去我的资源里面下载bootloader和app固件文件 步骤 xff1a 1 PC上安装JLINK V4 9工具 xff08 貌似不能使用太高版本的工具 xff0c 否则有问题 xff09 2 打开j flash v4 9 xff0c 新
  • ROS | 话题通信的编程实现

    ROS 话题通信的编程实现 1 创建功能包2 节点编程与消息定义2 1 案例说明2 2 话题消息的定义2 3 创建 cpp文件2 4 话题发布者编程2 5 话题订阅者编程 3 配置与编译3 1 在CMaKeLists txt中添加编译选项3
  • Cocos2dx 3.0配置环境

    3 15 cocos2dx 3 0rc0 终于放出来了 在这里不得不吐槽一件事 xff0c 3 0版本从Alpha xff0c 到beta xff0c 再到rc xff0c 三个版本竟然都有各自创建项目的方式 xff0c 这样真的不会被人打
  • linux 开机运行应用程序

    把运行应用程序的脚本放在 etc rc local里面 xff0c 如果没有 etc rc local xff0c 需要执行前面的3条指令新建这个文件 注意执行应用最好要在后台执行 xff08 后面加个 amp xff09 xff0c 否则
  • arm linux游戏手柄(joystick)驱动移植

    在arm linux中移植usb joystick驱动 xff0c 参考了如下经验 xff1a Linux系统中使用Xbox360手柄 知 行 博客园 cnblogs com 使用BlueZ连接蓝牙手柄 Dokin丶的博客 CSDN博客 蓝
  • linux ubuntu下网络调试助手(GUI)工具

    mNetAssist这个工具在ubuntu下可以运行 xff0c 是个带界面的tcp调试工具 1 UDP通讯 xff1b 2 可做 TCP客户端 xff1b 3 可做 TCP服务器 xff1b 4 可以 十六进制 传送接收数据 5 可以传送
  • fft的通俗解释

    FFT是离散傅立叶变换的快速算法 xff0c 可以将一个信号变换 到频域 有些信号在时域上是很难看出什么特征的 xff0c 但是如 果变换到频域之后 xff0c 就很容易看出特征了 这就是很多信号 分析采用FFT变换的原因 另外 xff0c
  • linux 字符驱动完整框架(poll,async,waitqueue,nonblock等)

    一个linux内核驱动的完整框架 xff0c 包含了能遇到的大部分内容 xff0c 例如timer poll async waitqueue nonblock等等 xff0c 不过基本上没啥大用 xff0c 就是用来熟悉基础的 xff0c
  • vscode远程调试Linux CUDA程序

    参考了 xff1a CUDA 01 第一个程序 知乎 zhihu com 1 本地安装插件 xff1a remote ssh xff0c Microsoft C C 43 43 与NVIDIA Nsight Visual Studio Co
  • 移植MQTT-C库(附源码)

    Software mqtt org 中mqtt客户端的c库里面有一个叫MQTT C的库 xff0c 就2个实现文件 xff0c 算比较简单的了 xff0c 实现了基本的mqtt客户端功能 xff0c 移植一下试试 我的移植代码放在我的资源里
  • TCP协议的滑动窗口和流量控制算法(转)

    目录 滑动窗口 流量控制 操作系统缓冲区与滑动窗口的关系 窗口关闭 糊涂窗口综合症 拥塞控制 慢启动 拥塞避免算法 拥塞发生 快速恢复 拥塞算法示意图 引入 窗口概念的原因 我们都知道 TCP 是每发送一个数据 xff0c 都要进行一次确认
  • linux应用中的时间处理

    参考下 xff1a Linux下有关时间的函数 xff1a time times clock gettimeofday等 linux time函数 见牛羊的博客 CSDN博客 下面的代码基本涵盖了获取时间和操作计时的一些函数使用 xff1a
  • 从旋转向量到欧拉角的六种计算方法

    利用SolvePNP解出旋转向量 xff0c 旋转向量通过罗德里格斯公式解出旋转矩阵 xff0c 然后通过下面六种公式计算即可 xff0c 欧拉角有十二种 xff0c 六种是相对于自身参考系 xff0c 六种是相对于惯性参考系 xff0c
  • ROS | 服务通信的编程实现

    ROS 服务通信的编程实现 1 创建功能包2 节点编程与服务数据定义2 1 案例说明2 2 服务数据的定义2 3 创建 cpp文件2 4 客户端编程2 5 服务器编程 3 配置与编译3 1 在CMaKeLists txt中添加编译选项3 2
  • HTTP基础验证

    HTTP 内置基础验证 浏览器收到401状态码响应后 xff0c 弹出要求输入信息的对话框 通过验证则显示内容 xff0c 不通过不显示需要验证身份的内容 1 xff1b 手动HTTP基础验证 xff1a header 39 http 1
  • 位域,段域,联合体,结构体操作寄存器

    include lt stdio h gt typedef int Uint16 struct SCICCR BITS bit description Uint16 SCICHAR 3 2 0 Character length contro

随机推荐

  • C++ 网络编程之使用socket + epoll 模拟http 的请求与响应

    为了更好的理解http协议 xff0c 笔者使用了C 43 43 socket模拟了一个http服务器 xff0c 其中的服务器使用了epoll的方式 xff0c 并针对每一个新的连接开启新线程处理 大致分为三个部分 xff0c 具体代码可
  • 【Nova】nova-scheduler过滤称重

    在上一篇 nova scheduler调度过程分析 中 xff0c 对过滤称重的过程一笔带过了 xff0c 这篇着重介绍一下 首先 xff0c 我们声明一下host为主机 xff0c node为节点 xff0c 在OpenStack中一个h
  • 1.通过tcp从daytime服务器获取时间

    最近愈发觉得在学习源代码或者看书的时候 xff0c 做下读书笔记 xff0c 不仅能加深印象和理解 xff0c 同时也方便日后进行回顾 xff0c 所以就写下UNP UNIX网络编程 卷1的读书笔记 xff0c 涉及到的代码基本都是原作者提
  • 4.IPv4和IPv6地址长度

    IPv4地址的二进制形式长度为32 xff0c 使用我们常用的点分十进制形式进行表示那么最长长度为15 xff0c 例如 255 255 255 255 所以在posix的 lt netinet in h gt 中定义的IPv4地址字符串形
  • 29.Nginx HTTP之请求行解析函数ngx_http_parse_request_line

    Nginx的HTTP模块中使用ngx http parse request line函数来对读取的请求行进行解析 xff0c HTTP请求行的格式不是很复杂 xff0c 但是要注意HTTP 0 9与1 0 1 1之间的区别 xff1b 另外
  • 4. 事务隔离级别之Read Uncommitted

    前面我们说过 xff0c 要获得最高的事务隔离性 xff0c 可以采取序列化 串行的方式 xff0c 代价是严重影响系统处理事务的吞吐量 就好像数据库是个多核CPU xff0c 事务串行后 xff0c 那么意味着我们总是在使用单核 xff0
  • Vision Transformer学习笔记

    Vison Transformer学习笔记 1 前言2 网络结构 amp 设计原理2 1 Linear Projection of Flattened Patches2 2 Transformer Encoder2 2 1 Layer No
  • 5. 事务隔离级别之Read Committed

    这篇我们学习事务隔离级别Read Committed xff0c 顾名思义 xff0c 就是读已提交 xff0c 一个事务只能看到其他并发的已提交事务所作的修改 很显然 xff0c 该级别可以解决Read Uncommitted中出现的 脏
  • 6. 事务隔离级别之Repeatable Read

    接下来我们学习Mysql默认的事务隔离级别Repeatable Read xff0c 顾名思义 xff0c 可重复读 xff0c 也即在一个事务范围内相同的查询会返回相同的数据 延续上面的栗子 xff1a 1 小明很开心自己考了69分 xf
  • 7.事务隔离级别之Serializable

    最后我们学习一下最高的事务隔离级别Serializable xff0c 顾名思义 xff0c 可串行化的 xff0c 也即并发事务串行执行 很显然 xff0c 该级别可以避免前面讲到的所有问题 xff1a 脏读 不可重复读 和 幻读 代价是
  • 6. 消息发送重试

    当连接失败 xff0c Celery会自动重试发送消息 xff0c 我们可以对重试行为进行设置 xff0c 譬如说多久重试一次 最大重试次数或者干脆不重试 xff01 当然这只是官方文档说的 xff0c 我在Windows上进行测试 xff
  • 1. RabbitMQ安装

    RabbitMQ作为消息队列 xff0c 在分布式系统中具有举足轻重的作用 xff0c 能够方便地解耦各个组件 xff1b OpenStack之所以具有高扩展性 xff0c RabbitMQ功不可没 虽然一直都在用 xff0c 但没有进行过
  • 1. Tornado实现聊天室

    Tornado的异步I O机制使其很适合处理长连接的场景 xff0c 在官方提供的Demo中就有一个简单的聊天室实现 xff0c 大致做法如下 xff1a 1 提供一个全局的消息缓存 2 每次获取新消息时 xff0c 如果缓存中没有新消息出
  • D435i运行VINS-mono以及Kalib标定

    D435i运行VINS mono以及Kalib标定 系统说明 xff1a Ubuntu 18 04 内核版本 xff1a 5 4 0 1 运行VINS mono 参考博客VINS xff08 D435i xff09 测试 问题 xff1a
  • ESP8266/ESP01 Server模式中TCP Client无法接收到数据

    硬件环境 xff1a ESP01 ESP8266 Windows7 xff0c 网络调试助手 xff0c 串口调试助手 先设置ESP8266的服务器模式 AT 43 CIPMUX 61 1 AT 43 CIPSERVER 61 1 8080
  • ROS报错:TF_OLD_DATA ignoring data from the past for frame leftwheel_link

    现象 xff1a rviz 中提示no transform from XX to odom 原因 xff1a lt param name 61 34 use sim time 34 value 61 34 true 34 gt 中use s
  • STM32-寄存器编程-使用寄存器点亮LED

    一 工程文件的建立 1 我们建立一个 工程模板 文件夹 xff0c 在它下面在新建4个文件夹 Listing存放编译器编译适合产生的C 汇编 链接的列表信息Project存放工程Output存放编译产生的调用信息 hex文件 预览信息 封装
  • VC 与VS的区别以及各个版本之间的对应关系

    各个版本之间的对应关系 使用windows平台搞开发时 xff0c 下载第三方库时经常会遇到文件名以VCxx版本号命令 xff0c VC版本如何转换成对应的VS的版本呢 xff0c 这里总结一下vc和vs的关系 Microsoft Visu
  • C/C++永不过时,不服来辩!

    序言 当你需要为你的项目放弃不同部分的时候 xff0c C 43 43 能帮你做到 当你需要不同抽象层次不同的性能要求时 xff0c C 43 43 能帮你做到 如果用别的语言 xff0c 你会发现那个语言只能做某几类的 而C 43 43
  • 标准c++库和stl库,boost库,qt库的总结(一)

    用了很长时间是stdio iostream 等头文件 xff0c 一直有个疑惑 xff0c 也用了很长一段是键的stl标准库中个别的类 xff0c 间接性的知道了boost库 xff0c qt库等一系列的库 昨天在有用到 include l