c++ 六大组件与功能

STL提供六大组件,彼此可以嵌套使用。

1.容器:各种数据结构,比如vector,list,set,map,deque,用来存放数据。从实作的角度看,STL 容器是一种 class template。就体积而言,这一部份很像冰山在海面下的比率。

2.算法:各种算法如sort,search,copy,erase。从实作的角度看,STL 算法是一种 function template。

3.迭代器:扮演容器与算法的焦灼剂。剂,是所谓的「泛型指标」。共有五种类型,以及其它衍生变化。从实作的角度看,迭代器 是㆒种将 operator*, operator->, operator++, operator-- 等指标相 关操作予以多载化的 class template。所有 STL 容器都附带有自己专属的迭 代器 — 是的,只有容器设计者才知道如何巡访自己的元素。原生指标(native pointer)也是㆒种迭代器。

4.仿函式:行为类似函式,可做为算法的某种策略(policy)。从实作的角度看,仿函式是㆒种重载了 operator()的 class 或 class template。㆒般函式指标可视为狭义的仿函式。

5.配接器(adapters):一种用来修饰容器(containers)或仿函式(functors) 或迭代器(iterators)接口的东西。例如 STL 提供的 queue 和 stack,虽然看似容器,其实只能算是一种容器配接器,因为它们的底部完全借重 deque,所有动作都由底层的 deque 供应。改变 functor 接口者,称 为 function adapter,改变 container 接口者,称为 container adapter,改变 iterator 界面者,称为 iterator adapter。

6.配置器(allocators):负责空间配置与管理。从实作的角度看, 配置器是一个实现了动态空间配置、空间管理、空间释放的 class template。

STL 六大组件的交互关系:Container 透过 Allocator 取得数据储存空间,Algorithm 透过 Iterator 存取 Container 内容,Functor 可以协助 Algorithm 完成不同的策略变化,Adapter可以修饰或套接 Functor。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值