• STL六大组件


    STL提供六大组件,彼此可以组合套用:

    1.容器(containers):各种数据结构,如vector,list,deque,set,map,

    用来存放数据。从实作的角度看,STL容器是一种class template。

    2.算法(algorithms):各种常用算法如sort,search,copy,erase...,

    从实作的角度看,STL算法是一种function template。

    3.迭代器(iterators):扮演容器与算法之间的胶着剂,是所谓的 泛型指标,

    是一种将operator*,operator->,operator++,operator--等指标相关操作

    予以多载化的class template。所以STL容器都附带有自己专属的迭代器---是的,

    只有容器设计者才知道如何巡访自己的元素。原生指标(native pointer)也是一

    种迭代器。

    4.仿函式(functors):行为类似函式,可作为算法的某种策略。从实作的角度看,

    仿函式是一种重载了operator()的class或class template。一般函式指标可视为狭义

    的仿函式。

    5.配接器(adapters):一种用来修饰容器或仿函式或迭代器接口的东西。例如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。

  • 相关阅读:
    很酷的软件WinDirStat
    [致歉]电信机房网络问题造成无法访问博客园
    [新功能]团队Blog群发邮件
    在SharePoint上建立新闻应用
    Firefox中Javascript使用event对象需要注意的问题
    祝大家春节快乐
    SPS用户管理的问题
    对AreaCollection中的元素进行排序—SharePoint新闻列表WebPart开发手记
    [小改进]给链接增加了描述属性
    Outlook 2003通过ISA 2004无法访问外部邮件(SMTP/POP3)的处理方法
  • 原文地址:https://www.cnblogs.com/yanglf/p/2751907.html
Copyright © 2020-2023  润新知