STL六大组件介绍

STL(Standard Template Library),即标准模板库,是一个高效的C++程序库。包含了诸多在计算机科学领域里常用的基本数据结构和基本算法。从逻辑层次来看,在STL中体现了泛型化程序设计的思想(generic programming)。从实现层次看,整个STL是以一种类型参数化(type parameterized)的方式实现的。

STL的六大组件如下:

  1. Container(容器) 
  2. Adapter(适配器) 
  3. Algorithm(算法) 
  4. Iterator(迭代器) 
  5. Function object(函数对象) 
  6. Allocator(分配器)

六大组件的基本作用:

  1. Container(容器)    各种数据结构,如Vector,List,Deque,Set,Map,用来存放数据,STL容器是一种Class Template,就体积而言,这一部分很像冰山载海面的比率。
  2. Adapter(适配器)    一种用来修饰容器(Containers)仿函数(Functors)迭代器(Iterators)接口的东西,例如:STL提供的Queue和Stack,虽然看似容器,其实只能算是一种容器配接器,因为 它们的底部完全借助Deque,所有操作有底层的Deque供应。改变Functor接口者,称为Function Adapter;改变Container接口者,称为Container Adapter;改变Iterator接口者,称为Iterator Adapter。配接器的实现技术很难一言蔽之,必须逐一分析。
  3. Algorithm(算法)  各种常用算法如Sort,Search,Copy,Erase,从实现的角度来看,STL算法是一种Function Templates。
  4. Iterator(迭代器)   扮演容器与算法之间的胶合剂,是所谓的“泛型指针”,共有五种类型,以及其它衍生变化,从实现的角度来看,迭代器是一种将:Operators*,Operator->,Operator++,Operator--等相关操作予以重载的Class Template。所有STL容器都附带有自己专属的迭代器——是的,只有容器设计者才知道如何遍历自己的元素,原生指针(Native pointer)也是一种迭代器。
  5. Function object(函数对象)   行为类似函数,可作为算法的某种策略(Policy),从实现的角度来看,仿函数是一种重载了Operator()的Class 或 Class Template。一般函数指针可视为狭义的仿函数。
  6. Allocator(分配器)  负责空间配置与管理,从实现的角度来看,配置器是一个实现了动态空间配置、空间管理、空间释放的Class Template。

六大组件的原理简析和使用如下:

C++ STL六大组件-1-Container(容器) 

C++ STL六大组件-2-Adapter(适配器) 

C++ STL六大组件-3-Algorithm(算法) 

C++ STL六大组件-4-Iterator(迭代器) 

C++ STL六大组件-5-Function object(函数对象) 

C++ STL六大组件-6-Allocator(分配器)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我很乐意为您介绍STL六大组件STL(Standard Template Library)是C++的一个标准程序库。它由一些必要部分和一些有用的组件组成。六大组件分别是:容器、迭代器、算法、仿函数、适配器、分配器。 容器(Containers)是用来容纳其他对象的对象(即存储数据的数据结构),STL中最基本的概念。容器分为序列式容器和关联式容器,序列式容器以元素在容器中的位置来组织和管理元素,关联式容器以元素的关键字来组织和管理元素。 迭代器(Iterators)是一个可遍历STL容器内所有元素的对象,它定义了一种遍历STL容器元素的标准方式,使得STL算法可以操作各种不同类型的STL容器。 算法(Algorithms)是定义在容器和迭代器之上的通用的重要的操作,比如查找、排序和删除等。算法可以大大简化C++程序员的工作,使代码更加简洁和易于维护。 仿函数(Functors)是一种与函数类似的对象,可以用于一些STL算法。仿函数实际上是一个类,其中至少定义了一个()运算符,使得该仿函数对象可以像函数一样被调用。 适配器(Adapters)是一种用于修改容器接口的对象,即将一种容器适配为另一种容器接口。 分配器(Allocators)是STL容器的内存管理工具,分配器负责分配和回收STL容器内元素的内存空间。 希望这些简要介绍能够帮助您了解STL六大组件

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值