C++ 标准库概览(一分钟就看完了)
C++ 标准库以若干头文件的方式提供。
下面简单介绍一个各头文件的内容。
第一部分 容器 Containers
<array>
C++11 新增。提供了容器类模板
std::array,固定大小数组的容器。
<bitset>
提供了专门用来存放位组(一系列 bit)的容器类
std::bitset。
<deque>
提供了双向队列容器类模板
std::deque。
<forward_list>
C++11 新增。提供了单向链表容器类模板
std::forward_list。
<list>
提供了双向链表容器类模板
std::list。
<map>
提供了类模板
std::map和std::multimap,前者是有序的一组偶对,后者与前者类似但允许键重复。
<queue>
提供了由
std::duque(经过适配器模式)包装而来的容器类std::queue,即单向队列。还提供了优先队列std::priority_queue。
<set>
提供了容器类模板
std::set和std::multiset。
<stack>
提供了由
std::duque(经过适配器模式)包装而来的容器类std::stack,即栈。
<unordered_map>
C++11 新增。提供了容器类模板
std::unordered_map和std::unordered_multimap,它们都属于哈希表(散列表)。
<unordered_set>
C++11 新增。提供了容器类模板
std::unordered_set和std::unordered_multiset。
<vector>
提供了容器类模板
std::vector,即动态数组。
第二部分 通用 General
<algorithm>
提供了很多针对 STL 容器的算法。
<chrono>
提供了诸如
std::chrono::duration和std::chrono::time_point等的时间元素,还有时钟。
<functional>
提供了一些函数对象(如仿函数)。
<iterator>
提供了与迭代器相关的一些类和模板。
<memory>
提供了 C++ 内存管理的工具,例如
std::unique_ptr,std::shared_ptr,std::weak_ptr。
<stdexcept>
这里面有一些表示异常的类,例如
std::exception,std::logic_error,std::runtime_error。
<tuple>
C++11 新增。提供了元组
std::tuple。
<utility>
提供了类模板偶对
std::pair。所谓偶对,就是放在一起的、有序的两个东西 (a,b)。提供了 namespacestd::rel_ops,用来更简便地使用运算符重载。
第三部分 本地化 Localization
<locale>
以类和函数的形式封装了与区域有关的操作。
<codecvt>
提供了不同代码页(code page)之间字符编码的转换功能。
第四部分 字符串 Strings
<string>
提供了 C++ 标准的字符串类和字符串模板。
<regex>
C++11 新增。提供了用正则表达式进行字符串匹配的功能。
第五部分 流与输入输出 Streams and Input/Output
<fstream>
提供了对文件的输入输出设施。
<iomanip>
提供了控制输出格式的功能。例如,基于特定的进制数格式化整数,或者控制浮点数的精度。
<ios>
提供了 iostream 需要的一些类型和函数。
<iosfwd>
提供了一些与 I/O 有关的转发操作。
<iostream>
提供了 C++ 输入与输出的基础层。
<istream>
提供了类模板
std::istream和其他与输入相关的辅助类。
<ostream>
提供了类模板
std::ostream和其他与输出相关的辅助类。
<sstream>
提供了类模板
std::stringstream和其他用来处理字符串流的类。
<streambuf>
提供了对字符序列(文件或字符串)进行读写的基础设施。
第六部分 辅助 Language support
<exception>
提供了一些与异常处理有关的类型和函数。
<limits>
提供了类模板
std::numeric_limits,用来描述基本数字类型的最值。
<new>
与
new和delete运算符有关的一些类型和函数。
<typeinfo>
C++ 运行时的类型信息的一些工具。
第七部分 线程支持 Thread support library
<thread>
C++11新增。提供了使用线程所需要的类和 namespace。
<mutex>
C++11新增。这里面有互斥对象(mutex),锁(lock),还有 once(一种用来保证某函数在某进程中只执行一次的对象)。
<condition_variable>
C++11新增。条件变量。一个条件变量代表一个条件,当一个条件变量等待时,它会阻塞当前线程,直到它代表的条件为真。
<future>
C++11新增。可以用它来进行便捷的异步操作,以免代码中出现一大堆回调函数。
第八部分 数学与数值计算 Numerics library
使得 C++ 程序可以执行(不完善的)数学运算的组件。
<complex>
复数相关。
<random>
(伪)随机数相关。
<valarray>
定义了五个类模板
valarray,slice_array,gslice_array,mask_array,indirect_array,两个类slice,gslice,还有一系列相关的函数模板。
<numeric>
一些通用的数学运算。
第九部分 C 标准库 C standard library
C 标准库也可以在 C++ 中使用。
https://my.oschina.net/jthmath/blog/886195
C++ 标准库概览(一分钟就看完了)的更多相关文章
- python系列十七:Python3 标准库概览
#!/usr/bin/python #-*-coding:gbk-*- #Python3 标准库概览'''操作系统接口os模块提供了不少与操作系统相关联的函数.建议使用 "import os ...
- python023 Python3 标准库概览
Python3 标准库概览 操作系统接口 os模块提供了不少与操作系统相关联的函数. >>> import os >>> os.getcwd() # 返回当前的工作 ...
- Python标准库概览
Python标准库通常被称为"自带的电池",自然地提供了广泛的功能,涵盖了大概200个左右的包与模块.不断有高质量的包或模块被开发出来,极大的丰富了标准库.但有些模块放在标准库中很 ...
- Python3 标准库概览
操作系统接口 os模块提供了不少与操作系统相关联的函数. >>> import os >>> os.getcwd() # 返回当前的工作目录 'C:\\Python ...
- python3 第三十三章 - 标准库概览Part II
第二部分提供了更高级的模块用来支持专业编程的需要.这些模块很少出现在小型的脚本里. 1. 输出格式化reprlib 模块提供了一个用来缩写显示大型或深层嵌套容器的 定制版repr() . >&g ...
- python3 第三十二章 - 标准库概览
1. 操作系统接口 os 模块提供很多函数与操作系统进行交互︰ >>> import os >>> os.getcwd() # 返回当前的工作目录 'C:\\Pyt ...
- 吴裕雄--天生自然python学习笔记:Python3 标准库概览
操作系统接口 os模块提供了不少与操作系统相关联的函数. >>> import os >>> os.getcwd() # 返回当前的工作目录 'C:\\Python ...
- Python3.2官方文档翻译--标准库概览(一)
7.1 操作系统接口 Os模块提供主要很多与操作系统交互的函数. >>> import os >>> os.getcwd() # Return the curren ...
- Python关于函数作为返回值的理解(3分钟就看完了)
话不多说,直接看例子,上代码: def line_conf(): def line(x): return 2 * x + 1 return line #return a function object ...
随机推荐
- js进阶 10-2 JQuery基础语法是什么
js进阶 10-2 JQuery基础语法是什么 一.总结 一句话总结: 1.jquery语法超级简单:基础语法是:$(selector).action() 2.jquery选择的时候是带了引号的,肯定 ...
- 学习鸟哥的Linux私房菜笔记(1)——Linux系统入门
今天在阿里云申请了一个centos系统的云服务器,以前对linux了解的只是皮毛,记了几个命令还给忘了,整了半天都弄不好,作为一个做过javaweb开发的coder实在是惭愧啊,决定从今天开始学习Li ...
- [ACM] POJ 1094 Sorting It All Out (拓扑排序)
Sorting It All Out Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 26801 Accepted: 92 ...
- SQL基础问题整理
在程序中,数据库操作是必不可少的部分,所以我们要备足数据库相关知识才能去应付程序中出现的种种问题.基于此,我特地在国外网站.博客上整理了一些问题,并附带了答案和解释.参考.为了保证“原汁原味”,我就保 ...
- CUDA一维纹理内存
纹理一词来源于GPU图形世界,GPU通用并行计算"盗用"了纹理一词,定义了一个纹理内存的概念.纹理内存缓存在 设备上,在某些情况下能减少对内存的请求并降低内存带宽的使用,是专门为那 ...
- matlab Tricks(二十七)—— 可变输入参数输出参数的适配
matlab 内置的对 varargin/varargout(nargin/nargout)的支持,使得 matlab 的输入参数和输出参数,有了更为灵活的传递和使用: 比如对于 matlab 原生支 ...
- [MVVM Light]Messenger 的使用
原文:[MVVM Light]Messenger 的使用 当我们使用MVVM开发模式进行开发时,ViewModel之间的通信常常是很头疼的事情,好在MVVM Light提供了Messenger类可以轻 ...
- 右键计算机->属性->高级系统设置->高级->环境变量,添加环境变量(推荐)
(1)右键计算机->属性->高级系统设置->高级->环境变量,添加环境变量(推荐) QTDIR:D:\Software\Qt\Qt5.2.0\5.2.0\msvc2010_op ...
- 像职业选手样编码:地道Python
Code Like a Pythonista: Idiomatic Python David Goodger goodger@python.org http://python.net/~goodger ...
- Java高级应用(一个)-文件夹监控服务
最近.在研究一些比较成熟的框架.他们还发现,他们中的一些相当不错的文章.现在,对于一些在你们中间一个简单的翻译(版的英文文章,非常有帮助). 译:原文链接 你有没有发现,当你编辑一个文件.同一时候使用 ...