常用的C++标准库头文件小结

 更新时间:2023年11月28日 08:23:11   作者:Bowen_J  
C++标准库定义了一系列函数、宏和对象,以实现跨团队、跨平台的高效且具有卓越性能的标准化 C++ 代码, 本文介绍常用的C++标准库头文件,需要的朋友可以参考下

C字母开头的是C语言库包装器, 并添加到 std 命名空间,例如cmath cstdlib。 

模板容器

  • 顺序容器

<vector>: 支持动态扩容的数组,支持随机访问和尾插, 比普通数组更安全、更灵活
<array>: 固定大小数组,支持复制
<deque>: 双向队列, 支持在开始和结尾的高效插入和删除操作
<list>: 双向链表 在任意位置插入和删除元素
<forward_list>: 单向链表

  • 有序的关联容器

<map>: 键值对数组, 且按照升序存储。multimap类似于map,但键不是唯一的
<set>: 集合,以升序方式存储唯一值, 已插入过的元素不可重复插入, multiset类似于set,但是值不必是唯一的。
<bitset>: 为固定长度的位序列定义bitset模板,它可以看作固定长度的紧凑型bool数组

  • 无序的关联容器

<unordered_map>: 无序容器map,其键值随机存放。multimap类似于map,但键不是唯一的
<unordered_set>: 无序容器set,其元素随机存放。multiset类似于set,但是值不必是唯一的

  • 容器适配器

<queue>: 队列, 先进先出(FIFO),只有队头和队尾可以被访问,故不可有遍历行为
<stack>: 堆栈(后进先出)

  • 迭代器

<iterator>: 迭代器

异常和错误处理

<cassert>: assert()宏
<exception>: 支持异常处理,exception、bad_excption
<stdexcept>: 没有定义在 exception 中的非领域相关的异常
<system_error>: 错误分类和错误代码
<cerrno>: 获取C函数错误信息(错误编号)

通用工具

<any>: 表示任意类型
<optional>: 可选,值可以有,也可以为空
<tuple>: 元组
<type_traits>: 模版元编程中使用的类型trait
<typeinfo>: 运行时类型信息工具 支持变量在运行期间的类型标识
<typeindex>: type_info简单包装,在容器中作为索引类型
<utility>: 多种工具组件
<algorithm>: 提供一组基于算法的函数,包括置换、排序、合并和搜索
<locale> 本地化包括字符类别以及货币和日期表示
<clocale> C语言本地化
<cstdlib>: rand(), abort(),exit(),calloc() malloc() realloc() free() qsort()以及字符处理函数
<cstdarg>: va_arg、va_end、va_start以及va_list类型
<cstddef>: NULL、size_t和ptrdiff_t

I/O流

<cstdio>: fopen fclose, printf printf scanf 等C语言输入输出操作
<filesystem>: 文件系统 path、directory_entry
<fstream>: 文件流
<iostream>: 支持标准流cin、cout、cerr和clog的输入和输出,还支持多字节字符标准流wcin、wcout、wcerr和wclog
<iomanip>: 提供操纵程序,允许改变流的状态,从而改变输出的格式
<ios>: 定义iostream的基类
<istream>: 为管理输出流缓存区的输入定义模板类
<ostream>: 为管理输出流缓存区的输出定义模板类
<sstream>: 支持字符串的流输入输出
<fstream>: 支持文件的流输入输出
<iosfwd>: 为输入输出对象提供向前的声明
<streambuf>: 支持流输入和输出的缓存
<cwchar>: 支持多字节字符的C样式输入输出

数学和数字

<cfenv> <cfloat>: C语言浮点数和相关操作
<cmath>: C数学库
<limits>、提供与基本数据类型相关的定义。例如,对于每个数值数据类型,它定义了可以表示出来的最大值和最小值以及二进制数字的位数。 
<cstdint>: int8_他int64_t等整数类型
<climits>: C风格数字限制,例如INT_MAX
<numeric> 数值算法的原型, 例如accumulate和inner_product
<random>: 随机数生成
<ratio>: 有理数
<valarray>: 支持数值矢量的操作

内存管理

<memory>: 分别支持共享shared_ptr,独享unique_ptr的动态内存分配)
<memory_resource>: 多态分配器和内存资源
<new>:支持动态内存分配 new、delete
<allocators>: 封装堆内存管理的对象
<scoped_allocator>: 容器的分配器

多线程处理

<csignal>: signal() raise() 信号处理
<atomic>: 原子类型atomic<T>和原子操作
<condition_variable>: 条件变量, 利用线程间共享的全局变量进行同步的一种机制
<future>: future promise async() 提供异步操作结果的机制,轻松解决从异步任务中返回结果
<mutex>: 互斥锁
<shared_mutex>: 共享锁
<thread>: 线程对象
<coroutine>: 协程支持库 

字符和字符串

<string>: 为字符串类型提供支持和定义,包括单字节字符串(由char组成)的string和多字节字符串(由wchar_t组成)
<string_view>: const string& 不会拷贝字符串
<charconv>: 字符转换, from_chats()、to_chars()
<cuchar>: Unicode 字符
<cwchar>: 宽字符版本的字符串、内存和IO函数
<cctype> 单字节字符操作
<cwctype> cctype的宽字符版本
<cstring> 内存: memcpy() memset() 字符: strcpy() strcmp()
<regex>: 正则表达式

时间

<chrono>: C++ 时间工具 
<ctime>: C时间工具 time()、localtime()

以上就是常用的C++标准库头文件小结的详细内容,更多关于C++标准库头文件的资料请关注脚本之家其它相关文章!

相关文章

  • 带你粗略了解C++中的深浅拷贝

    带你粗略了解C++中的深浅拷贝

    这篇文章主要给大家介绍了关于c++中深浅拷贝以及写时拷贝实现的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧
    2021-08-08
  • C语言指针详解

    C语言指针详解

    这篇文章非常详细的讲解了C语言中指针的概念,包含多种方法,多种定义,全面的说明了C语言的特性
    2021-06-06
  • 一文带你快速了解C/C++标准库中的ptrdiff_t

    一文带你快速了解C/C++标准库中的ptrdiff_t

    ptrdiff_t是C/C++标准库中定义的一个与机器相关的数据类型,ptrdiff_t类型变量通常用来保存两个指针减法操作的结果,下面这篇文章主要给大家介绍了关于C/C++标准库中ptrdiff_t的相关资料,需要的朋友可以参考下
    2022-11-11
  • C++使用标准库实现事件和委托以及信号和槽机制

    C++使用标准库实现事件和委托以及信号和槽机制

    这篇文章主要为大家详细介绍了C++如何使用标准库实现事件和委托以及信号和槽机制,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
    2022-11-11
  • C语言使用矩形法求定积分的通用函数

    C语言使用矩形法求定积分的通用函数

    这篇文章主要为大家详细介绍了C语言使用矩形法求定积分的通用函数,分别求解sinx, cosx,e^x,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • C语言实现简单的<三子棋>案例

    C语言实现简单的<三子棋>案例

    这篇文章主要介绍了C语言实现简单的《三子棋》,本文通过功能区分一步步实现该案例,通过逐步的解析和代码列举,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • Easyx实现扫雷游戏

    Easyx实现扫雷游戏

    这篇文章主要为大家详细介绍了Easyx实现扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • 基于C++中常见编译错误的总结详解

    基于C++中常见编译错误的总结详解

    本篇文章是对C++中的常见编译错误进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • C 语言restrict 关键字的使用浅谈

    C 语言restrict 关键字的使用浅谈

    C 语言restrict 关键字的使用浅谈,需要的朋友可以参考一下
    2013-04-04
  • 插入排序算法之希尔排序+直接插入排序

    插入排序算法之希尔排序+直接插入排序

    这篇文章主要介绍了插入排序算法之希尔排序+直接插入排序的相关知识,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11

最新评论