C++标准模板库(STL)的概念
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)的概念相关推荐
- C++中标准模板库STL基本概念
0. 前言 C++语言的一大优势就是便于软件的重用,而重用体现在两方面: 1. 面向对象思想:继承和多态,标准类库 2. 泛程序设计(Generic Programming)思想:模板机制,标准模板库 ...
- 标准模板库STL(Standard Template Library)
标准模板库STL(Standard Template Library)指南 /*刘振飞liuzf@pku.org.cn 1999-10-20*/ / *版权所有 (C) 1999-2004 刘振飞li ...
- 蓝桥杯算法竞赛系列第0章——蓝桥必考点及标准模板库STL(上)(万字博文,建议抱走)
欢迎来到:遇见蓝桥遇见你,不负代码不负卿! 目录 一.蓝桥必考点剖析 二.什么是STL 三.vector的常见用法详解 1.vector的定义 2.vector容器内元素的访问 (1).通过下标访 ...
- C++ ——模板 标准模板库STL
C++ 知识基础 流操作符 类 & 基础 初始化和重载 类 & 高级 继承和多态 模板 & 标准模板库STL 目录 C++ 一.模板 1.函数模板 2.类模板 二.标准模板库S ...
- C++ 标准模板库 STL 概述
泛型程序设计 C++ 的特点: C++ 的核心优势之一就是便于软件重用,而软件的重用在 C++ 中主要体现在以下两个方面: 面向对象的思想:继承.多态和标准类库 泛型程序设计的思想:模板机制和标准 ...
- C++ 标准模板库(STL)
C++ 标准模板库(STL) C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现如 queues(队列) ...
- c++标准模板库STL【快速查找】【最全】【常用】【语法】
c++标准模板库STL[快速查找][最全][常用][语法] c标准模板库STL快速查找最全常用语法 vector- 变长数组 set-内部自动有序且不含重复元素 ...
- c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解
c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...
- 13 标准模板库STL【C++】
13 标准模板库STL 13- 判断题 单选题 填空题 程序填空题 函数题 7-1 .查找电话号码 7-2 姓名排序 7-3 Score Processing 13+ 编程题 7-1 查找成绩并折算后 ...
最新文章
- BZOJ2819 Nim
- hog svm 视频 matlab,matlab版hog+svm图像二分类
- Pensieve:AI带来的更流畅的高质量观看体验
- local class cannot see outer class defined type, even if it is public
- softmax理论及代码解读——UFLDL
- 前端学习(1372):构建模块化路由
- 【HDU - 5094】 Maze (状态压缩+bfs)
- Cesium学习系列汇总
- Git学习————Eclipse工程中Git图标
- RDLC namespace cannot be upgraded 解决方案
- [转]关于Gmail打不开的解决办法
- 微生物组-扩增子16S分析第10期(报名直播课免费参加线下2020.12)
- iOS和安卓的base64
- DICOM医学图像处理:fo-dicom网络传输之 C-Echo and C-Store
- Android中蓝牙模块的使用
- 关于支付接口的调用(感谢beecloud)
- Win10下徽标Win键组合快捷键大全
- Java进阶篇之接口
- PIC单片机之中断程序
- js实现xml转json
热门文章
- 基于GRNN神经网络的数字预失真系统的FPGA实现
- three.js学习资料整理
- 《走进SAP(第2版)》——2.5 SAP NetWeaver简介
- 如何让一个类可以被foreach枚举?
- ASP.NET MVC:Cookie 的过期时间在服务器端是获取不到的
- Lvs+keepalived 实现负载均衡、故障剔除(DR模式)
- main_loop()函数解析(1)
- SharePoint 2010 BI(2):使用Visio“.NET研究” Service
- Windows Home Server中文版使用全攻略
- WinCVS与CVSNT简明使用手则