C++11标准库


1.主要包含三个关键组件——容器(container,流行的模板数据结构)、迭代器(iterator)和算法(algorithm)。
容器:容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。
迭代器:迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。
算法:算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。
2.容器
序列容器:-->
array:固定大小,直接访问任意元素
deque:从前部或后部进行快速插入和删除操作,直接访问任何元素
forward_list:单链表,在任意位置快速插入和删除
list:双向链表,在任意位置进行快速插入和删除操作
vector:从后部进行快速插入和删除操作,直接访问任意元素
有序关联容器(键按顺序保存)-->
set:快速查找,无重复元素
multiset:快速查找,可有重复元素
map:一对一映射,无重复元素,基于键快速查找
multimap:一对一映射,可有重复元素,基于键快速查找
无序关联容器:-->
unordered_set:快速查找,无重复元素
unordered_multiset:快速查找,可有重复元素
unordered_map:一对一映射,无重复元素,基于键快速查找
unordered_multimap:一对一映射,可有重复元素,基于键快速查找
容器适配器:-->
stack:后进先出(LIFO)
queue:先进先出(FIFO)
priority_queue:优先级最高的元素先出
3.迭代器
随机访问迭代器(random access):在双向迭代湍基础上增加了直接访问容器中任意元素的功能, 即可以向前或 向后跳转任意个元素
双向迭代器(bidirectional):在前向迭代器基础上增加了向后移动的功能。支持多遍扫描算法
前向迭代器(forword):综合输入和输出迭代器的功能,并能保持它们在容器中的位置(作为状态信息),可以使用同一个迭代器两次遍历一个容器(称为多遍扫描算法)
输出迭代器(output):用于将元素写入容器。 输出迭代器每次只能向前移动一个元索。 输出迭代器只支持一遍扫描算法,不能使用相同的输出迭代器两次遍历一个序列容器
输入迭代器(input):用于从容器读取元素。 输入迭代器每次只能向前移动一个元素。 输入迭代器只支持一遍扫描算法,不能使用相同的输入迭代器两次遍历一个序列容器
支持的迭代器类型:
vector:随机访问迭代器 set:双向迭代器
array:随机访问迭代器 multiset:双向迭代器
deque:随机访问迭代器 map:双向迭代器
list:双向迭代器 multimap:双向迭代器
forword_list:前向迭代器 unordered_set:双向迭代器
stack:不支持迭代器 unordered_multiset:双向迭代器
queue:不支持迭代器 unordered_map:双向迭代器
priority_queue:不支持迭代器 unordered_multimap:双向迭代器
typedef:
iterator:向前++ 读/写
const_iterator:向前++ 读
reverse_iterator:向后++ 读/写
const_reverse_iterator:向后++ 读
4.常用头文件(标准库)
< iostream >包含C++标准输入和输出函数的原型。
< iomanip > 包含格式化数据流的流操纵符的函数原型。
< cmath > 包含数学库函数原型。
< cstdlib > 包含数转换为文本、文本转换为数、内存分配、随机数及其他各种工具函数的函数原型。
< ctime > 包含处理时间和日期的函数原型和类型。
< array >,< vector >,< list >,< forword_list >,< deque >,< queue >,< stack >,< map >,< unordered_map >,< unordered_set >,< set >,< bitset > 这些头文件包含了实现C++标准库容器的类。 在程序执行期间 , 容器保存数据。
< ctype > 包含测试字符特定属性(例如字符是否是数字字符或者标点符号)的函数原型和用于将大小写字母转换的函数原型。
< cstring > 包含C风格字符串处理函数的函数原型。
< typeinfo >包含运行时类型识别(在执行时确定数据类型)的类。
< exception >,< stdexcept > 这两个头文件包含用于异常处理的类。
< memory > 包含被C++标准库用来向C++标准库容器分配内存的类和函数。
< fstream > 包含执行由磁盘文件输入和向磁盘文件输出的函数的函数原型。
< string > 包含来自C++标准库的 string类的定义。
< sstream > 包含执行由内存字符串输入和向内存字符串输出的函数的函数原型。
< functional > 包含C++标准库算法所用的类和函数。
< iterator > 包含访问C++标准库容器中数据的类。
< algorithm > 包含操作C++标准库容器中数据的函数。
< cassert > 包含为辅助程序调试而添加诊断的宏。
< cfloat > 包含系统的浮点数长度限制。
< climits > 包含系统的整数长度限制。
< cstdio > 包含C风格标准输入和输出库函数的函数原型。
< locale > 包含流处理通常所用的类和函数,用来处理不同语言自然形式的数据(例如货币格式 、 排序字符串、字符表示 , 等等)。
< limits > 包含为各计算机平台定义数字数据类型限制的类。
< utility > 包含被许多C++标准库头文件所用的类和函数。

 

posted @   joyfulest  阅读(112)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示