常用的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++的强制类型转换是我们在日常开发中经常会遇到的,下面这篇文章主要给大家介绍了关于C++强制类型转换的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-09-09
  • Qt QMessageBox类使用教程

    Qt QMessageBox类使用教程

    QMessageBox类提供一个模态对话框,用于通知用户或询问用户一个问题并接收答案。这篇文章主要介绍了QMessageBox的一些常用用法,需要的小伙伴快来学习一下
    2021-12-12
  • 手把手带你学习C++的运算符

    手把手带你学习C++的运算符

    这篇文章主要为大家介绍了C++运算符,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助
    2021-11-11
  • C语言实现扫雷小程序

    C语言实现扫雷小程序

    这篇文章主要为大家详细介绍了C语言实现扫雷小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • C语言指针入门的简单实例教程

    C语言指针入门的简单实例教程

    这篇文章主要给大家介绍了关于C语言指针入门的简单实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • C++全面精通类与对象

    C++全面精通类与对象

    类和对象是两种以计算机为载体的计算机语言的合称。对象是对客观事物的抽象,类是对对象的抽象。类是一种抽象的数据类型;变量就是可以变化的量,存储在内存中—个可以拥有在某个范围内的可变存储区域
    2022-05-05
  • 详解C++中的函数调用和下标以及成员访问运算符的重载

    详解C++中的函数调用和下标以及成员访问运算符的重载

    这篇文章主要介绍了详解C++中的函数调用和下标以及成员访问运算符,讲到了这些二元运算符使用的语法及重载,需要的朋友可以参考下
    2016-01-01
  • C语言实现歌手比赛系统

    C语言实现歌手比赛系统

    这篇文章主要为大家详细介绍了C语言实现歌手比赛系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • OpenCV实现图像校正功能

    OpenCV实现图像校正功能

    这篇文章主要为大家详细介绍了OpenCV实现图像校正功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • string与char*转换的使用详解

    string与char*转换的使用详解

    本篇文章对string与char*的转换进行的介绍。需要的朋友参考下
    2013-05-05

最新评论