C++STL知识

STL6大组件

容器,迭代器,算法,适配器,空间配置器,仿函数

STL六大组件的交互关系

容器通过空间配置器取得数据存储空间,算法通过迭代器存储容器中的内容,仿函数可以协助算法完成不同的策略变化,适配器可以修饰仿函数

  1. 适配器可以把原来访函数中只能扔一个函数变成两个函数
  2. 仿函数可以协助算法…意思是今天要查大于5的明天要查小于5的。可以修改

容器

各种数据结构如:vector*list**deque**set**map*

  1. 序列式容器 :
    1、存储的顺序和遍历时的顺序一样
    2、 固定位置,除非用删除或插入的操作 Vector容器,Deque容器List容器等
  2. 关联式容器:
    1、按照指定的顺序排列,如果没有指定,会默认有一个
    2、元素在容器中并没有保存元素置入容器时得逻辑顺序
    3、特点:在值中选择一个值作为关键字key,这个关键字对值起到索引作用,方便查找
    4、例如:Set/multiset/Map/multimap

迭代器

容器和算法的桥梁,依次寻访某个容器所含的各个元素。

迭代器功能
输入迭代器只读
输出迭代器只读
前向迭代器读写、向前推进
双向迭代器读写、向前向后操作

. 随机访问迭代器 读写、跳跃式的方式访问容器中任意数据,是功能最强的迭代器

算法

#include’‘algorithm’’ 需要记住,引入头文件.例如:sort,find,copy,for_each

  1. 质变算法 运算过程中会更改区间内的元素的内容,例如拷贝,替换,删除等
  2. 非质变算法 运算过程中不会更改区间内元素内容,例如查找,计数,遍历,寻找

适配器(不是重点)

实现接口

空间配置器(不是重点)

实现动态空间配置,空间管理,空间释放

仿函数(不是重点)

类似函数实现重载

C++STL库 优点

  1. 是C++的一部分,不用额外安装什么,内建在编译器之内
  2. 重要特性:数据和操作分离,数据由容器管理,操作则由可定制的算法定义,迭代器作为两者的粘合剂,使算法和容器交互运作
  3. 不用思考STL具体实现过程,只要能够熟练使用STL就ok
  4. STL具有可重用性,高性能,高移植性,跨平台的优点
优点详细描述
高可用性采用模板类和模板函数
高性能如map可以高效地从十几万条记录里查找出指定的记录,应为map采用红黑树的变体实现
高移植性项目A上用STL编写的模块可以直接移植到项目B上

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值