C++之STL(一)

发布时间 2023-05-09 02:12:08作者: ElevHe

面向对象三大特性:封装、继承、多态

封装:复用性高的模块抽象出来,进行整理,作为一个整体,提高了代码的复用性

继承:子类继承父类,把父类中所有的属性和行为都获得,不用再次声明,也提高了代码的复用  

多态:一个函数名称有多个接口,由于对象不同,父类指针指向子类对象,对象创建的不同,调用一个接口获得的内容不同,会产生不同的形态 

STL 即标准模板库,从广义上分为:容器(container)  算法(algorithm)  迭代(iterator)

 容器算法之间通过迭代器进行无缝连接

 

STL 六大组件

容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器

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

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

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

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

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

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

 

一、容器

分为序列式容器关联式容器

序列式容器:强调值的排序,其中每个元素都有其固定的位置

关联式容器:二叉树结构,各元素间没有严格物理意义上的顺序关系

 

二、算法

算法分为质变算法与非质变算法

质变算法:运算过程中会更改区间内元素内容。如:拷贝,替换,删除等

非质变算法:运算过程中不改变区间内元素内容。如:查找、遍历、寻找极值等

 

三、迭代器

提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又不会暴露该容器的内部表达方式

每个容器都有自己的专属迭代器。

迭代器种类:

1.输入迭代器2.输出迭代器3.前向迭代器4.双向迭代器5.随机访问迭代器

常用4、5

四、仿函数

仿函数(Functor)又称为函数对象(Function Object)是一个能行使函数功能的类。

通过重载括号运算符实现