STL标准库的总结

一、STL基础

1、STL是为了提高代码的可重复使用而产生,提供了一个标准的模板库,可供直接调用。

2、为了建立数据结构和算法的一套标准,而诞生了STL

3、STL从广义上可以分为:容器(container)、算法(algorithm)、迭代器(iterator)

4、容器和算法之间通过迭代器进行连接。

5、STL几乎所有的代码都采用了模板类或者模板函数。


二、STL六大件

STL大体分为六大组件,分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器

1、容器:各种数据结构,如 vector、list、deque、set、map 等,用来存放数据。

2、算法:各种常用的算法,如 sort、find、copy、for_each等。

3、迭代器:扮演容器与算法之间的胶合剂。

4、仿函数:行为类似函数、可作为算法的某种策略。

5、适配器:一种用来修饰容器或者仿函数或者迭代器接口的东西

6、空间配置器:负责空间的配置与管理

(1)、容器
在这里插入图片描述
(2)、算法
在这里插入图片描述
(3)、迭代器

在这里插入图片描述


三、STL组成

1、顺序容器
  • vector:可变数组
  • deque:双端队列
  • list:双向链表
  • forward_list:单向链表
  • array:固定数组大小(C++11)
  • sring:字符串
2、适配器
  • queue:单向队列
  • stack:栈
  • priority_queue:拥有优先级的队列
3、泛型算法

标准库并未给每个容器添加了大量的功能,而是提供了一组算法,这些算法中的大多数都是独立于特定容器的,它们可以用于不同类型的容器和不同类型的元素。
大多数容器都是定义在<algorithm>头文件中的,通过迭代器来与容器之间建立联系。对容器中的元素进行操作。常用的泛型算法总结归纳

4、关联容器

关联容器都支持高效的关键字查找和访问。主要的关联容器是:mapset,并由此一共衍生了8个关联容器。

  • map:关联数组,保存键值对 key-value
  • set:关键字值
  • multimap:可重复出现
  • multiset:可重复出现
  • unordered_map:哈希函数组织的无序map
  • unordered_set:哈希函数组织的无需set
  • unordered_multimap:无序可重复map
  • unordered_multiset:无序可重复set
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值