STL 提供了6大组件,彼此之间可以组合套用,这6大组件分别是:
容器,算法,迭代器,仿函数,适配器,空间配置器

简单介绍:
容器:各种数据结构,入vector,list, deque, set, map等,用来存放数据,从实现角度来看, STL容器是一种 class template.
算法:各种常用的算法,如 sort, find, copy, for_each. 从实现的角度来看,stl算法是一种 function template.
迭代器:扮演了容器与算法之间的胶合剂,共有五种类型,从实现角度来讲,迭代器是一种将 operator*, operator->, operator++, operator–等指针相关操作予以重载的class template,所有的STL容器都附带有自己专属的迭代器,只有容器的设计者才知道如何遍历自己的元素,原生指针也是一种迭代器.
仿函数: 行为类似函数,可作为算法的某种策略,从实现角度看,仿函数是一种重载了operator()的class或者是 class template.
适配器:一种专门用来修饰容器或者仿函数或者迭代器接口的东西
空间配置器:负责空间的配置和管理,从实现角度看,配置器是一个实现了动态空间配置,空间管理,空间释放的class template

STL 6大组件的交互关系:容器通过空间配置器取得数据存储空间,算法通过迭代器存储容器中的内容,仿函数可以协助算法完成不同的策略变化,适配器可以修饰仿函数。

C++ STL 初步介绍01相关推荐

  1. 游戏AI之初步介绍(0)

    目录 游戏AI是什么? 游戏AI和理论AI 智能的假象 (更新)游戏AI和机器学习 介绍一些游戏AI 4X游戏AI <求生之路>系列 角色扮演/沙盒游戏中的NPC 游戏AI 需要学些什么? ...

  2. Scilab的初步介绍

    一项软件或者技术可能出现较早,但成熟应用或者受到重视往往需要经过较长时间,一方面是因为软件本身的稳定性有时间规律性,另一方面则是因为人们对于某个事物的接受需要过程性.随着博主研究的深入和各种阅历的增长 ...

  3. LPDDR4与LPDDR4X介绍01

    LPDDR4与LPDDR4X介绍01 开文简单介绍下: DDR:一般用在桌面PC,笔记本跟服务器: LPDDR:一般用在手机,平板,轻薄本跟嵌入式电子产品: GDDR:用在显卡上. LPDDR4:Lo ...

  4. powerbi使用说明_微软Power BI入门指南(1):Power BI初步介绍

    来源:数据之巅链接:http://www.cnblogs.com/asxinyu/p/Power_BI_GettingStarted_English_Intro.html 我们在前一篇文章微软新神器- ...

  5. 手机flash技术的初步介绍,(上次飞思的来北京聊了一下)[小糊涂的灵感]

    手机flash技术的初步介绍,(上次飞思的来北京聊了一下) 在中国,早已有一家国产软件厂商致力于手机播放FLASH动画的工作.广州 飞思软件有限公司经过了一年多的努力,终于可以把FLASH移植到支持K ...

  6. [原创]Slatstack 两个数据系统重要组件:Grains和Pillar初步介绍说明

    之前文章<Saltstack命令参数详解以及配置文件说明> 做了一个saltstack 的简单用户举例以及配置文件说明,基本对saltstack这个自动化工具有了一个原理.安装和配置方面的 ...

  7. jquery实现流程图绘制工具——展现红警三建造出兵操作 ——二、代码初步介绍,项目结构与文件介绍

    目录 一.简介 二.代码初步介绍 拓展.实现红警三录像文件读取与自动分析生成流程图信息 ======================= 大爽歌作,made by big shuang ======== ...

  8. python实现红警三录像文件读取与自动分析生成流程图信息——二、项目结构与代码初步介绍

    总目录 一.简介 二.项目结构与代码初步介绍 三.拓展给mod使用 ======================= 大爽歌作,made by big shuang ================== ...

  9. 1.JVM的初步介绍(宋红康笔记)

    目录 1. JVM的初步介绍 1.1 JDK,JRE,JVM的关系 1.2 JVM的整体结构 1.3 Java代码执行流程 1.4 JVM的架构模型 1.5 JVM的生命周期 1. JVM的初步介绍 ...

最新文章

  1. 皮一皮:高考考了 692 分想当程序员的女生
  2. 【转】android的消息处理机制(图+源码分析)——Looper,Handler,Message
  3. 关于编辑器对input标签报错提示“表单输入没有相关label”的问题
  4. RabbitMQ,RabbitMQ 的工作模式,Spring 整合 RabbitMQ,Springboot 整合RabbitMQ
  5. Nginx安全说:一剑封喉
  6. MySQL-TCL语言
  7. hun暑期实训 最大报销额(01背包) 关于动态内存分配的new与delete
  8. 数据库操作之整合Mybaties和事务讲解 5节课
  9. linux设备驱动程序-i2c(1):i2c总线的添加与实现
  10. mysql用身份证号判断男女_如何根据身份证号码辨别性别呢
  11. 地图下面的标尺是什么意思_【一点资讯】地图的主要类型有哪些? 何谓地图比例尺? 什么是地图注记? www.yidianzixun.com...
  12. 谈谈人工智能的罪与罚
  13. [1151]python连接 redis cluster集群
  14. qt中的enter键
  15. 瑞吉外卖项目剩余功能补充
  16. wordpress框架图片上传
  17. 计算机无法删除用户,怎么彻底删除一个用户
  18. 《iOS Drawing Practical UIKit Solutions》读书笔记(三) —— Drawing Images
  19. 【机器学习小常识】“分类” 与 “回归”的概念及区别详解
  20. MIT线性代数笔记四 矩阵的LU分解

热门文章

  1. 2090. 「ZJOI2016」旅行者 分治,最短路
  2. Spark Streaming整合logstash + Kafka wordCount
  3. Axis通过wsdd部署Web Service
  4. android-verticalseekbar——Android可视化SeekBar类库
  5. CDOJ--1668
  6. linux date命令设置时间
  7. 转:JNI jstring与c++字符串类型转换函数
  8. Virtools自己编译播放器
  9. 产品经理的职责(转)
  10. Could not load the assembly 'DotNetNuke.Authentication.LiveID'. Make sure that it is compiled before