1、STL与面向对象的区别
基本没有使用各种virtual函数,继承等,主要是用templates制作出来的
2、STL六大部件
分配器(allocator)、容器、迭代器、仿函数、算法、适配器
3、C++标准库和STL的关系
C++标准库>STL,STL包含的是六大部件,C++标准库还包含其他一些东西
4、STL六大部件之间的关系

-
容器:容器可以让我们不关注内存的管理,直接往里面添加元素,因此容器需要分配器的支持。
-
分配器:实现容器的内存管理。
-
算法:体现出与OOP的区别,和数据部分(容器)分离,面向对象的思想会将数据和函数放到类中包含。
-
迭代器:一种泛化的指针,实现对容器的查找等操作。
-
仿函数:函数功能,实现对象的加加减减等,概念性
-
适配器:可以对某些部件做一些转换,包括容器、仿函数、算法适配器
代码案例:

上图中包含了六大部件,可以初探到allocator的使用方法。
5、迭代器的前闭后开
针对所有的容器,其迭代器的begin()和end()含义均为前闭后开

本文介绍了STL(Standard Template Library)与面向对象编程的区别,强调了STL主要通过模板实现,而非依赖于虚拟函数和继承。STL的六大部件包括分配器、容器、迭代器、仿函数、算法和适配器。容器负责存储元素,分配器管理内存,算法独立于数据,迭代器提供遍历功能,仿函数实现对象操作,适配器则用于部件间的转换。此外,文章阐述了C++标准库与STL的关系,并详细解释了迭代器的前闭后开原则,即begin()指向第一个元素,end()指向最后一个元素之后的位置。
最低0.47元/天 解锁文章
1075

被折叠的 条评论
为什么被折叠?



