STL(Standard Template Library)标准模板库是 C++ 标准库中的一部分,标准模板库为 C++ 提供了完善的数据结构及算法。

STL 标准模板库包括三部分:容器、算法和迭代器。容器是对象的集合,STL 的容器有:vector、stack、queue、deque、list、set 和 map 等。STL 算法是对容器进行处理,比如排序、合并等操作。迭代器则是访问容器的一种机制。

在 C++ 定义数组时,我们必须提前知晓数组的大小,然后为了避免因为新数据的加入而导致越界,因而需要不断地进行越界检测,这样一来效率就大大降低了。而使用 STL 有一个非常大的优点就是不需要提前知道数组的大小,当有新元素加入时,容器会自动增大,删除元素时,容器会自动减小。

除此之外,STL 还提供了大量的算法用于操作容器。STL 具有可扩展性,也就是说可以增加新的容器和算法。

STL 基本容器可以分为:

  • 序列式容器,主要有 list、vector、deque;
  • 关联式容器,主要有 set、multiset、map、multimap;
    序列式容器可以像数组一样通过下标进行访问。关联式容器则是需要通过键值进行访问,关联式容器可以将任何类型的数据作为键值。
容器 类型 描述
vector 序列式容器 按照需要改变长度的数组
list 序列式容器 双向链表
deque 序列式容器 可以操作两端的数组
set 关联式容器 集合
multiset 关联式容器 允许重复的集合
map 关联式容器 图表
multimap 关联式容器 允许重复的图表

C++标准模板库(STL)的概念相关推荐

  1. C++中标准模板库STL基本概念

    0. 前言 C++语言的一大优势就是便于软件的重用,而重用体现在两方面: 1. 面向对象思想:继承和多态,标准类库 2. 泛程序设计(Generic Programming)思想:模板机制,标准模板库 ...

  2. 标准模板库STL(Standard Template Library)

    标准模板库STL(Standard Template Library)指南 /*刘振飞liuzf@pku.org.cn 1999-10-20*/ / *版权所有 (C) 1999-2004 刘振飞li ...

  3. 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)

    欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 ​ 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...

  4. C++ ——模板 标准模板库STL

    C++ 知识基础 流操作符 类 & 基础 初始化和重载 类 & 高级 继承和多态 模板 & 标准模板库STL 目录 C++ 一.模板 1.函数模板 2.类模板 二.标准模板库S ...

  5. C++ 标准模板库 STL 概述

    泛型程序设计 C++ 的特点: ​ C++ 的核心优势之一就是便于软件重用,而软件的重用在 C++ 中主要体现在以下两个方面: 面向对象的思想:继承.多态和标准类库 泛型程序设计的思想:模板机制和标准 ...

  6. C++ 标准模板库(STL)

    C++ 标准模板库(STL) C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列) ...

  7. c++标准模板库STL【快速查找】【最全】【常用】【语法】

    c++标准模板库STL[快速查找][最全][常用][语法] c标准模板库STL快速查找最全常用语法         vector- 变长数组         set-内部自动有序且不含重复元素     ...

  8. c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解

    c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...

  9. 13 标准模板库STL【C++】

    13 标准模板库STL 13- 判断题 单选题 填空题 程序填空题 函数题 7-1 .查找电话号码 7-2 姓名排序 7-3 Score Processing 13+ 编程题 7-1 查找成绩并折算后 ...

最新文章

  1. BZOJ2819 Nim
  2. hog svm 视频 matlab,matlab版hog+svm图像二分类
  3. Pensieve:AI带来的更流畅的高质量观看体验
  4. local class cannot see outer class defined type, even if it is public
  5. softmax理论及代码解读——UFLDL
  6. 前端学习(1372):构建模块化路由
  7. 【HDU - 5094】 Maze (状态压缩+bfs)
  8. Cesium学习系列汇总
  9. Git学习————Eclipse工程中Git图标
  10. RDLC namespace cannot be upgraded 解决方案
  11. [转]关于Gmail打不开的解决办法
  12. 微生物组-扩增子16S分析第10期(报名直播课免费参加线下2020.12)
  13. iOS和安卓的base64
  14. DICOM医学图像处理:fo-dicom网络传输之 C-Echo and C-Store
  15. Android中蓝牙模块的使用
  16. 关于支付接口的调用(感谢beecloud)
  17. Win10下徽标Win键组合快捷键大全
  18. Java进阶篇之接口
  19. PIC单片机之中断程序
  20. js实现xml转json

热门文章

  1. 基于GRNN神经网络的数字预失真系统的FPGA实现
  2. three.js学习资料整理
  3. 《走进SAP(第2版)》——2.5 SAP NetWeaver简介
  4. 如何让一个类可以被foreach枚举?
  5. ASP.NET MVC:Cookie 的过期时间在服务器端是获取不到的
  6. Lvs+keepalived   实现负载均衡、故障剔除(DR模式)
  7. main_loop()函数解析(1)
  8. SharePoint 2010 BI(2):使用Visio“.NET研究” Service
  9. Windows Home Server中文版使用全攻略
  10. WinCVS与CVSNT简明使用手则