常用的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-05-05
  • C++多文件变量解析

    C++多文件变量解析

    大家注意不要在头文件中定义变量,在头文件中声明变量。定义放在对应的源文件中。其他地方只能用extern声明
    2013-10-10
  • c++基础使用STL的注意点详解

    c++基础使用STL的注意点详解

    这篇文章主要为大家介绍了c++基础使用STL的注意点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-12-12
  • 详细对比C语言中的chmod()函数和fchmod()函数

    详细对比C语言中的chmod()函数和fchmod()函数

    这篇文章主要介绍了C语言中的chmod()函数和fchmod()函数的详细对比,两个都是用于修改文件权限但是请注意实际使用上的差异,需要的朋友可以参考下
    2015-09-09
  • C语言可变参数列表的用法与深度剖析

    C语言可变参数列表的用法与深度剖析

    这篇文章主要给大家介绍了关于C语言可变参数列表的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • 浅谈C#中List<T>对象的深度拷贝问题

    浅谈C#中List<T>对象的深度拷贝问题

    下面小编就为大家带来一篇浅谈C#中List<T>对象的深度拷贝问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • 掌握C++:揭秘写时拷贝与浅深拷贝之间的关系

    掌握C++:揭秘写时拷贝与浅深拷贝之间的关系

    探索C++的奥秘,本指南将揭秘写时拷贝与浅深拷贝之间的微妙关系,摸索这些复杂概念背后的逻辑,让你的编程技能瞬间提升,来吧,让我们一起进入这个引人入胜的C++世界!
    2024-01-01
  • C++实现无重复字符的最长子串

    C++实现无重复字符的最长子串

    本文主要介绍了C++实现无重复字符的最长子串,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • VS2022设置编码方式为utf-8的三种方式小结

    VS2022设置编码方式为utf-8的三种方式小结

    本文主要介绍了VS2022设置编码方式为utf-8的三种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • VS2019上配置CUDA的环境步骤

    VS2019上配置CUDA的环境步骤

    本文主要介绍了VS2019上配置CUDA的环境步骤,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06

最新评论