C++ 标准库(C++ Standary Library)
可能有很多像我一样的同学,用C++工作了很久,一直用的都是mfc或者qt,在编写代码时,用的都是c......或者q......等库。好处是,库封装了很多方法,方便实用。不好之处是,代码复用性,和可移植性很差。
今天就来介绍介绍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++ 中使用。
C++ 标准库(C++ Standary Library)相关推荐
- Python基础知识(八):模块化、标准库、第三方库
一.模块化编程理念_什么是模块_哲学思想 1.模块和包概念的进化史 Python 程序由模块组成.一个模块对应python 源文件,一般后缀名是:.py. 模块由语句组成.运行Python 程序时,按 ...
- C++ 标准库概览(一分钟就看完了)
C++ 标准库以若干头文件的方式提供. 下面简单介绍一个各头文件的内容. 第一部分 容器 Containers C++11 新增.提供了容器类模板 std::array,固定大小数组的容器. 提供了专 ...
- 【侯捷】C++STL标准库与泛型编程(第一讲)
前言 所谓Generic Programming(GP,泛型编程),就是使用 template(模板)为主要工具来编写程序.本课程第二讲开宗明义阐述了 GP 与 OOP(Object Oriented ...
- C++各大有名库的介绍之C++标准库
C++各大有名库的介绍之C++标准库 标准库中提供了C++程序的基本设施.虽然C++标准库随着C++标准折腾了许多年,直到标准的出台才正式定型,但是在标准库的实现上却很令人欣慰得看到多种实现,并且已被 ...
- meetup_如何使用标准库和Node.js构建Meetup Slack机器人
meetup by Janeth Ledezma 简妮丝·莱德兹玛(Janeth Ledezma) 如何使用标准库和Node.js构建Meetup Slack机器人 (How to build a M ...
- cygwin编译生成hello world_自己动手实现Lua:虚拟机、编译器、标准库(一)——搭建开发环境...
该系列是笔者在学习张秀宏编写的<自己动手实现Lua:虚拟机.编译器.标准库>过程中的笔记总结 开发环境 操作系统:MacOS 文本编辑器:IntelliJ IDEA2019.2.2 CE ...
- Glibc辅助运行库 (C RunTime Library): crt0.o,crt1.o,crti.o crtn.o,crtbegin.o crtend.o
crt1.o, crti.o, crtbegin.o, crtend.o, crtn.o 等目标文件和daemon.o(由我们自己的C程序文件产生)链接成一个执行文件.前面这5个目标文件的作用分别是启 ...
- c语言utc时间转换北京时间_C/C++标准库之转换UTC时间到local本地时间详解
前言 UTC 时间DateTime.UtcNow 和 系统本地时间 DateTime.Now 相差8个时区 ,美国本地时间和北京时间相差15个时区: 美国,而一般使用UTC时间方便统一各地区时间差异. ...
- 【C++标准库】并发
高级接口async()和future /* The following code example is taken from the book * "The C++ Standard Lib ...
最新文章
- 使用代理软件之后其他软件不能联网的解决方法
- 经典面试题:给两个序列如何构造一棵二叉树
- nyoj--86--找球号(一)(hashset二分)
- 求交错序列前N项和(15 分)
- php 中间表统计,多对多中间表详解
- Java面试题详解二:java中的关键字
- python 城市地图_使用底图获取城市地图的最佳方法? - python
- tomcat日志配置——如何查看日志
- IDEA远程调试代码
- caffe 训练笔记总结
- 超长攻略,机器学习基石!带你涉足王者之巅
- LinkIn基于Dynamo设计的系统:伏地魔(voldemort)设计中文文档[我是陈科学院译]-完稿...
- DOTA高考全国卷A卷
- 找回Windows 10安全通知图标
- python的培训学校
- oracle逗号隔开行转列_oralce逗号分割变多行-Oracle
- NVIDIA JETSON TX1刷机重装系统笔记
- 浅谈代码规范基础调试几道面试题
- 记录一下:老衲的py路程 mac下的tkinter小应用
- Typecho 免费“简博客”主题
热门文章
- 【12个降维技术的终极指南(使用Python代码)】
- 重磅丨十四五国家信息规划:部署了10项重大任务,10项优先行动(附PDF原文)...
- 如果你不能正确对待他人对你的判断,那么他人的判断就是你的地狱。
- 记一次redis数据库RDB内存事故排查处理
- 1-14 串口在S3C2440上的原理、配置与驱动实现
- ZIF-8包裹溶菌酶作配体的金纳米颗粒(Lys-AuNPs)|磁性g-C3N4/Fe3O4@ZIF-8纳米复合材料|ZIF-8@银基SERS基底|齐岳试剂
- 【软件测试】简历中的项目经历可以怎么写?
- 苹果xr如何截屏_苹果手机必备软件1
- 乐视腾讯深度合作 超级电视26日易迅网首发
- 从微博个性图标里学Android动态更换