C++标准模板库(Standard Template Library,STL)

2023-11-03

标准模板库介绍

标准模板库(Standard Template Library,STL)是惠普实验室开发的一系列软件的统称。 虽说它主要出现到C++中,但在被引入C++之前该技术就已经存在了很长时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模板函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。

C++标准库头文件

在C++标准中,STL被组织为下面的13个头文件:
<algorithm>、
<deque>、
<functional>、
<iterator>、
<vector>、
<list>、
<map>、
<memory>、
<numeric>、
<queue>、
<set>、
<stack> 
<utility>

在这里插入图片描述

STL 组成

STL 将“在数据上执行的操作”与“要执行操作的数据分开”,分别以如下概念指代:

  • 容器:包含、放置数据的地方。
  • 迭代器:在容器中指出一个位置、或成对使用以划定一个区域,用来限定操作所涉及到的数据范围。
  • 算法:要执行的操作。

标准模板库包含了序列容器(sequence containers)与关系容器(associative containers)。
序列容器包括vector,list,forward_list,deque和array等。
关联容器包括set,multiset,map,multimap,unordered_set,bitset和valarray等。

迭代器

迭代器是泛化的指针,通过使用迭代器,开发者可以操作数据结构而无需关心其内部实现。根据迭代器的操作方式的不同,迭代器分为五种:

  • 输入迭代器
  • 输出迭代器
  • 前向迭代器
  • 双向迭代器
  • 随机访问迭代器

算法

STL提供了一些常见 的算法,如排序和搜索等。这些算法与数据结构的实现进行了分离。因此,用于也可对自定义的数据结构使用这些算法,只需让这些自定义的数据结构拥有算法所预期的迭代器。

适配器

适配器(Adaptor)为一个模板类,用于提供接口映射。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++标准模板库(Standard Template Library,STL) 的相关文章

随机推荐

  • 使用远程服务器总是因网络中断、终端不小心关闭、锁屏等导致程序中断

    分享编程工具实用方法 面对无穷无尽的配置bug 其他文章 Windows连接远程Linux服务器 VSCode配置 免密设置 跳板机配置 GeForce RTX 3090无法使用mmsegmentation官方推荐cuda版本 ubuntu
  • 计算机辅助实验圆弧连接画法,机械制图基础-18、圆弧连接的画法

    绘图时 经常要用已知半径的圆弧 但圆心要在作图中确定 这样的圆弧 称为连接圆弧 连接圆弧需要光滑连接已知直线或圆弧 光滑连接也就是要在连接点处相切 为了保证相切 必须准确地作出连接圆弧的圆心和切点 一 用已知半径为R的圆弧连接两条已知直线
  • 超七成阅读APP都借百度语音技术促用户增长

    全国十多亿人在这个春节集体 关门闭户 与手机和网络作伴 除了手游和短视频流量飞涨 在线阅读也迎来 高光时刻 特别是当手机阅读APP标配了语音朗读即 听书 功能 据百度大脑AI开放平台的后台数据显示 疫情期间 支持 听书 功能的语音合成技术的
  • 重新映射图像——OpenCV Remap实例

    重新映射图像 OpenCV Remap实例 在计算机视觉领域中 图像的几何变换是一项重要的工作 重要的任务之一是将图像转换为其他形式 例如投影或扭曲 OpenCV的Remap函数提供了一个简单和灵活的方法来执行这种类型的变换 下面展示了如何
  • unsigned char 数值溢出问题

    include
  • 在D盘使用SVN检出文件后,整个盘出现蓝色问号的解决办法。

    在D盘使用SVN检出文件后 整个盘出现蓝色问号的解决办法 原因 在该盘的根目录执行了checkout操作 SVN将整个盘作为了一个版本库的本地副本 那些问号表示这些文件没有被SVN控制 解决方法 1 在文件上右击 选择TortoiseSVN
  • android studio电影院选座,8排电影院选座最佳位置

    8排电影院选座最佳位置在哪里呢 8排电影院属于小影厅 小影厅银幕宽度在10米以下 座位100以内 座位排数通常拥有8 14排 小影厅整体空间小 选座时要选中间稍靠后一些的位置 由于整体排数少 因此选即便选择靠后一些的排数实际上距银幕的距离也
  • ubuntu 同时使用无线网卡和有线网卡

    转载于这位博主 文章
  • Ubuntu18.04 取消开机密码 实现自动登录

    因为要把Ubuntu设备作为服务器 实现开机自动运行服务程序 所以需要取消开机密码 实现自动登录 1 点击桌面右上角向下的箭头 点击设置图标 2 点击右上角的 Unlock 3 在弹出的窗口中输入系统登录密码 点击右下角 Authentic
  • OpenMP并行编程

    1 总览 OpenMP Open Multi Processing 是一种用于共享内存并行系统的多线程程序设计方案 支持的编程语言包括C C 和Fortran OpenMP提供了对并行算法的高层抽象描述 通过线程实现并行化 特别适合在多核C
  • springboot使用logback日志框架超详细教程

    前言 项目中日志系统是必不可少的 目前比较流行的日志框架有log4j logback等 可能大家还不知道 这两个框架的作者是同一个人 Logback旨在作为流行的log4j项目的后续版本 从而恢复log4j离开的位置 另外 slf4j Si
  • 阶乘约数

    include
  • 【4月第二周学习记录】数据结构与算法王卓-第六章图-图的遍历(邻接矩阵与邻接表,DFS与BFS)

    1 图的遍历基本思路与方法 图的遍历的定义与visited数组 常用的遍历方法 深度优先搜索遍历 Depth First Search DFS 广度优先搜索遍历 Breadth First Search BFS 2 深度优先搜索遍历 Dep
  • 华为SMC2.0视频会议系统总结(一)

    简单总结下 新上手的华为视频会议SMC2 0会控系统 第一次接触华为的会控系统 理解的不是很深刻 简单的记下来 省得以后忘记 因为客户使用的泛微OA系统 我们公司 南大智慧 负责提供华为设备 并做相应的接口开发工作 我们主要的工作内容就是确
  • 控制器的编码器

    一 原理 控制器内部为每个轴配置了脉冲计数装置 控制器默认的脉冲计数源是外部编码器 如果用户 在接线时将外部编码器的信号与端子板 25pin轴接口的编码器信号接在一起 就可以调用指令读取外部编码器的值 如果用户没有接外部编码器反馈信号 例如
  • java基础学习 day22(方法,return,重载)

    1 方法 是程序中最小的执行单元 方法里面的代码 要么全都执行 要么全都不执行 重复的代码 具有独立功能的代码可以抽取到方法中 方法的好处 可以提高代码的复用性 可以提高代码的可维护性 java虚拟机在运行时会先自动调用main 方法 2
  • ## 带AB相编码器直流减速电机测转动速度及角度深度解析

    带AB相编码器直流减速电机测转动速度及角度深度解析 下图为编码器输出的AB相波形 一般情况下 我们只测A相 或B相 的上升沿或下降沿 但四倍频的方法是测A相和B相的上升沿和下降沿 在同样的时间内 计数脉冲是以前的4倍 然后stm32单片机可
  • 一致性的3种协议,并发,事务

    Two Phase Commit MVCC Paxos TPC对应于传统数据库上的local cluster的一致性 分布式事务 每个节点上的local事务可以是不同的亦可以是相同的 replica MVCC的思想是抓住Transactio
  • vue项目中使用vee-validate表单验证

    一 写在前面 作为前端开发 在项目中避免不了做表单到页面 做表单页面就避免不了要做表单效验 如果多个表单页面有相同都表单比如用户名 密码等等 不能每个页面都写一次验证规则 作者项目平时使用都vue比较多 所有使用vee validate插件
  • C++标准模板库(Standard Template Library,STL)

    文章目录 标准模板库介绍 C 标准库头文件 STL 组成 迭代器 算法 适配器 标准模板库介绍 标准模板库 Standard Template Library STL 是惠普实验室开发的一系列软件的统称 虽说它主要出现到C 中 但在被引入C