zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    在python中添加自定义模块
    jquery图片延时加载
    java的内部类与匿名类
    Oracle数据库优化器的优化方式
    JS实现画线(兼容所有浏览器)
    Ext中window的用法
    关于工作流WEB设计器的一些问题
    ORACLE EBS 价目表的导入功能存储过程BUG
    EXT编程实现人员信息的添加
    用户交互式垃圾回收机制
  • 原文地址:https://www.cnblogs.com/yanglf/p/2751907.html
Copyright © 2011-2022 走看看