C++之STL介绍

什么是STL

STL(Standard Template Library)标准模版库,是为了建立数据结构和算法的一套统一标准,提高代码的父用行;STL 广义上可以分为容器(container),算法(algorithm)和迭代器(iterator),容器和算法之间通过迭代器进行无缝连接。

STL六大组件

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

容器:各种数据结构,如vector,list,deque,set,map等用于存放数据的
算法:各种常用的算法,如sort,find,copy,for_each等
迭代器:容器与算法之间的胶合剂,就是遍历容器的时候需要用到它
仿函数:行为类似函数,可作为算法的某种策略
适配器:一种用于修饰容器或者仿函数或迭代器接口的东西
空间适配器:负责空间的配置与管理

STL中的容器、算法、迭代器解释

容器

容器顾名思义就是用于存放东西的,STL容器就是将那些运用最广泛的一些数据结构实现出来,比如常用的数组,链表,树,栈,队列,集合,映射等,容器分为序列式容器和关联式容器

序列式容器:强调值的排序,序列式容器中的每一个元素均有固定的位置
关联式容器:二叉树结构,各元素之间没有严格的物理上的顺序关系

算法

算法其实就是问题的解决办法,使用有限的步骤,解决逻辑或者数学上的问题,而算法分为质变算法和非质变算法

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

迭代器

迭代器被称为是容器和算法之间的粘合剂,它提供一种方法,使算法可以访问某个容器中所含的各个元素,而无需暴露该容器的内部表示方式,每个容器都有自己专属的迭代器,迭代器的使用类似于指针,可以先将迭代器理解为指针,迭代器有五种,如下:

输入迭代器:对数据做只读访问,支持只读,++,==, != 运算
输出迭代器:对数据做只写访问,支持只写,++运算
前向迭代器:对数据做读写操作,并能向前推进迭代器,支持读写,++,--,!=运算
双向迭代器:对数据做读写操作,并能向前或向后操作,支持读写,++,--运算
随机访问迭代器:对数据做读写操作,可以以跳跃的方式访问任意数据,支持读写,++,--,[n],-n,<,<=,>,>=运算

总结

本文主要介绍了STL标准模版库,这个库可以让我们编写功能时站在巨人的肩膀上,利用STL的标准模版库可以省去我们做一些重复的功能,提高我们的代码的复用性。

你可能感兴趣的:(c++,算法,数据结构,STL)