STL--Lesson001-01-STL概述

STL

泛型程序设计

  • 列表内容程序尽可能通用
  • 将算法从数据结构中抽象出来,成为通用的

STL是什么(做了什么)

泛型程序思想的体现
- 包含常用的数据结构
- 包含常用的基本算法
- 提供了一套可扩展框架

STL六大组件

这里写图片描述
- 容器(Container)
基本数据结构
vector(向量)
这里写图片描述
这里写图片描述
这里写图片描述
deque(双端队列)
这里写图片描述
这里写图片描述
list(列表)
这里写图片描述
这里写图片描述
set(集合)
multiset(多重集合)
这里写图片描述
map(映射)
multimap(多重映射)
这里写图片描述
序列式容器
有序的
vector
deque
list
频繁的插入或删除,不用在序列内部长距离调转,应该选择list
在vector头部和中间插入删除效率低,在尾部插入删除效率高
deque在头部和尾部插入与删除效率高,实际访问的速度比vector低
关联式容器
无序的
setmultiset
map
multimap
(c11之前使用的是红黑树,之后使用的是哈希表)
二叉树(主要用来做搜索的,分为有序树和无需树),经常会使用有序树
红黑树,保证了左右绝对平衡,左旋或者右旋
这里写图片描述
- 迭代器(Iterator)
- 分配器(Allocator)
改变了Container或Iterator或function Object借口的组件
容器适配器
为实现类提供新的接口:

队列
优先队列
迭代适配器:
反向迭代器
插入迭代器
IO迭代器
函数适配器:
函数对象适配器
成员函数适配器
普通函数适配器
- 算法(Algorithm)
各种基础算法sort、search等等
- 迭代器
链接Container和Algorithm
smart point(小指针,不完全的指针)
在一个容器元素上进行遍历,也可以是容器的一部分,所有的迭代器都实现了++(累加)和*进行提取值,类似于指针,使用++可以遍历下一个元素,如何遍历取决于容器内部的数据的组织形式。
- 函数对象(仿函数(Functor)Function Object)

  • 分配器(Allocator)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值