2019独角兽企业重金招聘Python工程师标准>>>

STL六大组件简介

1、容器(Containers):各种数据结构,如Vector,List,Deque,Set,Map,用来存放数据,STL容器是一种Class Template,就体积而言,这一部分很像冰山载海面的比率。
2、算法(Algorithms):各种常用算法如Sort,Search,Copy,Erase,从实现的角度来看,STL算法是一种Function Templates。
3、迭代器(Iterators):扮演容器与算法之间的胶合剂,是所谓的“泛型指针”,共有五种类型,以及其它衍生变化,从实现的角度来看,迭代器是一种将:Operators*,Operator->,Operator++,Operator--等相关操作予以重载的Class Template。所有STL容器都附带有自己专属的迭代器——是的,只有容器设计者才知道如何遍历自己的元素,原生指针(Native pointer)也是一种迭代器。
4、仿函数(Functors): 行为类似函数,可作为算法的某种策略(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源码剖析》

转载于:https://my.oschina.net/feistel/blog/3021224

STL标准库六大组件相关推荐

  1. 侯捷C++课程笔记03: STL标准库与泛型编程

    本笔记根据侯捷老师的课程整理而来:STL标准库与泛型编程 pdf版本笔记的下载地址: 笔记03_STL标准库与泛型编程,排版更美观一点(访问密码:3834) 侯捷C++课程笔记03: STL标准库与泛 ...

  2. C++ - STL标准库

    1.C++ STL标准库简介 长久以来,软件界一直希望建立一种可重复利用的东西,以及一种得以制造出"可重复运用的东西" 的方法,从函数(functions),类别(classes) ...

  3. STL标准库及泛型编程

    1-认识headers.版本.重要资源 C++ Standard Library Standard Template Library 标准库 > STL 标准库以header files形式呈现 ...

  4. C++拾取——使用stl标准库实现排序算法及评测

    今天看了一篇文章,讲各种语言的优势和劣势.其中一个观点:haskell非常适合写算法,因为使用者不用去关心具体的计算机实现,而只要关注于操作语义.这让它在专心研究算法的人中非常受欢迎.所以很多时候,语 ...

  5. STL标准库-容器-set与map

    STL标准库-容器-set与multiset C++的set https://www.cnblogs.com/LearningTheLoad/p/7456024.html STL标准库-容器-map和 ...

  6. C++的STL标准库学习(queue)队列(第四篇)

    queue容器基本概念 Queue是一种先进先出(First In First Out,FIFO)的数据结构,它有两个出口,queue容器允许从一端新增元素,从另一端移除元素.  也就是说输入的数据要 ...

  7. C++的STL标准库学习(stack)栈

    stack是一种先进后出(First In Last Out,FILO)的数据结构,它只有一个出口,形式如图所示.stack容器允许新增元素,移除元素,取得栈顶元素,但是除了最顶端外,没有任何其他方法 ...

  8. C++STL标准库学习笔记(一)sort

    目录 前言: 正文 一.排序(sort) 用法1:对基本类型的数组(int,double,char...)从小到大排序 用法2:对元素类型为T的基本类型数组从大到小排序: 用法3:用自定义的排序规则, ...

  9. STL标准库常见面试题(一)

    本博客内容: 参考:https://blog.csdn.net/tianya_team/article/details/50753759 https://www.cnblogs.com/wulala1 ...

最新文章

  1. java jibx_Jibx 处理XML
  2. 利用 GPU 加速人工智能:新型计算模式
  3. MFC CMap整理
  4. [py]access日志入mysql-通过flask前端展示
  5. 瓦力机器人故障维修_大眼萌!5G巡逻机器人亮相乌镇,24小时值守互联网大会...
  6. 状态模式(c++实现)
  7. 利用PHP SOAP实现web service
  8. 修练8年C++面向对象程序设计之体会
  9. 阻塞非阻塞,同步异步四种I/O方式
  10. 禁用计算机服务,适当禁用系统服务 提升计算机运行速度
  11. 安装debian 9.1后,中文环境下将home目录下文件夹改为对应的英文
  12. efi分区能不能删除 win10_Win10不小心把EFI分区删除怎么恢复?
  13. 使用官方APi获取Youtube视频资源
  14. ie8 ajax 缓存问题,IE8/IE9下Ajax缓存问题
  15. git FETCH_HEAD 版本回滚 ORIG_HEAD
  16. ACWing n-皇后问题
  17. maximo安全组没有添加用户的权限
  18. 优秀的web前端工程师需要哪些软技能
  19. Elasticsearch集群“脑裂”现象
  20. 磁珠法DNA pull down试剂盒、蛋白质-核酸相互作用

热门文章

  1. bzoj1412[ZJOI2009]狼和羊的故事
  2. Windows 7会成为Win XP第二的10大理由
  3. 要管理此计算机上的用户账户,win10用户账户控制 你要允许此应用 若要继续请输入管理员密码...
  4. 【ubuntu】安装之后要安装的一些东西
  5. Numpy、Scipy、matplotlib、scikit-learn等常用学习链接
  6. POJ1269:Intersecting Lines(判断两条直线的关系)
  7. 一千行MySQL学习笔记
  8. jquery实现在元素外单击,隐藏此元素
  9. DataGrid分页使用小结
  10. 使用 Flex 布局与其他普通布局的简单对比