STL六大组件 功能与运用(略写)
1.容器:
各种数据结构:如vector list deque set map,用来存放数据
容器类是容纳、包含一组对象或对象集的对象,通过容器类提供的成员函数可以实现对序列元素的各种操作。
什么是容器?
百度百科:容器是指用以容纳物料并以壳体为主的基本装置。常用作储存设备或其他化工设备的外壳。在C++中,STL提供了大量的容器类。容器类的对象可以认为是“容器”。
容器的种类:
STL容器通常分为三种:序列式容器、关联式容器、容器适配器,(其中容器适配器不能算为真正意义上的容器,严格意义上算为容器的使用类,它是在容器的基础上发展起来的)
- 序列式容器
string | 类似动态顺序表 |
---|---|
vector | 动态数组类型的顺序表 |
array(C++11) | 静态数组 |
list | 带头节点的双向链表 |
forward_list | 带头节点的单链表 |
deque | 双端对列,类似于二维数组 |
序列式容器最主要的特点是可以在首端删除元素,在末尾可以插入元素
- 关联式容器
底层为红黑树:
map | 保存<key , value>键值对,key唯一 |
---|---|
set | 保存 key , key唯一 |
multimap | 保存<key , value>, key不唯一 |
multiset | 保存 key, key不唯一 |
因为底层为红黑树:所以其遍历是关于 key 有序,查找的时间复杂度为O(log2^N)
底层为哈希结构:
unordered_map | 保存<key , value>键值对,key唯一 |
---|---|
unordered_set | 保存 key , key唯一 |
unordered_multimap | 保存<key , value>, key不唯一 |
unordered_multiset | 保存 key, key不唯一 |
因为底层为哈希结构:查找的时间复杂度为O(1),用空间换时间。
容器适配器
stack | 栈 |
---|---|
queue | 队列 |
priority_queue | 优先级对列 |
2.算法
常用的算法有sort search copy erase
3.迭代器
将容器与算法连接起来,也就是所谓的“泛型指针”,常见的迭代器有5中类型,(基本上都是指针相应的一些操作)。operator -> ,operator* , operator++ ,operator-- 等指针相关的操作重载,原生态的指针也算是迭代器(vector的迭代器就为原生态的指针)。
4.仿函数
类似与函数的类,仿函数基本上可以看作是将operator()的操作进行了重载。
5.容器适配器
6.配置器
负责空间的配置与管理,配置器实现了动态空间的配置,管理,释放。
STL六大组件的交互关系
容器通过空间适配器来获取空间,算法通过迭代器存取容器中的内容,仿函数协助算法完成一些操作,容器适配器修饰仿函数。
STL六大组件 功能与运用(略写)相关推荐
- STL —— STL六大组件
注:以下内容摘自 http://blog.csdn.net/byxdaz/article/details/4633826 STL六大组件 容器(Container) 算法(Algorithm) 迭代器 ...
- (P72)stl(一):泛型程序设计,什么是STL,STL六大组件及其关系
文章目录 1.泛型程序设计 2.什么是STL 3.STL六大组件及其关系 1.泛型程序设计 泛型编程(generic programming) 类属编程 将程序写得尽可能通用 将算法从数据结构中抽象出 ...
- 详解 C++ STL 六大组件,看完不懂打我...
STL 提供了六大组件,彼此组合套用协同工作.这六大组件分别是: 容器(Containers):各种数据结构,如 vector.list.deque.set.map 等.从实现的角度来看,容器是一种 ...
- STL——STL简介、STL六大组件
一.STL是什么 STL(standard template library): C++标准模板库,是C++标准库的重要组成部分,不仅是一个可复用的组件库,还是一个包罗数据结构与算法的 ...
- [STL]六大组件介绍(目录 全)
一般介绍 STL(Standard TemplateLibrary),即标准模板库,是一个具有工业强度的,高效的C++程序库.它被容纳于C++标准程序库(C++ Standard Library)中, ...
- STL学习_(一)STL简介-STL六大组件简介
一.什么是STL 1.STL(Standard Template Library),即标准模板库,是一个高效的C++程序库. 2.包含了诸多在计算机科学领域里常用的基本数据结构和基本算法.为广大C++ ...
- STL六大组件:分配器、容器、迭代器、算法、仿函数、适配器
来自 侯捷<STL源码剖析> 转载于:https://www.cnblogs.com/madison/archive/2012/05/23/2515574.html
- 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系
介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL>,这本书由STL开发者 Matth ...
- STL标准库六大组件
2019独角兽企业重金招聘Python工程师标准>>> STL六大组件简介 1.容器(Containers):各种数据结构,如Vector,List,Deque,Set,Map,用来 ...
最新文章
- Xtreme.Toolkit.Pro编译简单教程
- 究竟使用什么样的万向轮?
- Python后端相关技术/工具栈
- 使用TensorFlow的基本步骤
- Elasticsearch 5.0 —— Head插件部署指南
- 成功解决Future Warning: The sklearn.neighbors.dist_metrics module is deprecated in version 0.22 and wil
- 在Win2003中安装bind【部署智能DNS】
- Lua基础之math(数学函数库)
- 阿里云CentOS6.3 安装MongoDB教程
- Linux编程练习 --多线程1--线程创建
- 有关代码段、数据段、BOSS段、堆、栈的存储位置问题。。。
- 新零售大潮下 联想与BHG Mall签约共建智慧商城
- php mysql插入多个列_php mysql插入多条记录
- TSC打印机,使用java打印二维码
- 阿里云活动价格点击购买时价格上涨的解决办法
- 数据中心 服务器 电压,数据中心和通信机房,需要这样的功率器件……
- Win7定时任务——提醒自己喝水
- 玩客云:更好的迅雷从“共享计算”开始
- excel任意单元格中自动插入页码和总页数
- K8S集群Pod资源自动扩缩容方案