一、STL是什么

STL(standard template library):

        C++标准模板库,是C++标准库的重要组成部分,不仅是一个可复用的组件库,还是一个包罗数据结构与算法的软件框架。

通俗来讲:

STL就是将常见的数据结构(顺序表、链表、栈、队列、堆、哈希……)以模板的方式进行封装,并提供一些通用灵活的算法。

二、STL的六大组件

1.容器

功能:组织数据,将常见的数据结构封装起来。

1.1序列式容器--线性结构

C++98提供:

string:动态类型顺序表(char)

vector:动态类型顺序表(任意类型数据)

list:带头节点双向循环链表

deque:双端队列

C++11提供:

array:静态类型顺序表

forward_list:带头节点单向循环链表

1.2关联式容器

map、set、multimap、multiset

2.算法

find、swap、reverse、sort……

3.迭代器

iterator、const_iterator、reverse_iterator、const_reverse_iterator

迭代器:本质是指针,用法与指针类似。

目的:让算法可以透明化的操作具体的容器。

4.适配器(配接器)

stack、queue、priority_queue

5.仿函数

greater、less……

仿函数可以像函数一样使用功能的对象,目的是可以让算法功能更加灵活。

6.空间配置器

allocator

STL——STL简介、STL六大组件相关推荐

  1. 泛型编程、STL的概念、STL模板思想及其六大组件的关系,以及泛型编程(GP)、STL、面向对象编程(OOP)、C++之间的关系

    介绍STL模板的书,有两本比较经典: 一本是<Generic Programming and the STL>,中文翻译为<泛型编程与STL>,这本书由STL开发者 Matth ...

  2. STL标准库六大组件

    2019独角兽企业重金招聘Python工程师标准>>> STL六大组件简介 1.容器(Containers):各种数据结构,如Vector,List,Deque,Set,Map,用来 ...

  3. (P72)stl(一):泛型程序设计,什么是STL,STL六大组件及其关系

    文章目录 1.泛型程序设计 2.什么是STL 3.STL六大组件及其关系 1.泛型程序设计 泛型编程(generic programming) 类属编程 将程序写得尽可能通用 将算法从数据结构中抽象出 ...

  4. 《STL源码剖析》学习--六大组件

    stl 提供了六大组件,分别为:容器.算法.迭代器.仿函数.适配器和配置器. 容器通过配置器取得数据存储空间,算法通过迭代器存取容器的内容,仿函数可以协助算法完成不同的策略,配接器可以修饰或者嵌套仿函 ...

  5. STL —— STL六大组件

    注:以下内容摘自 http://blog.csdn.net/byxdaz/article/details/4633826 STL六大组件 容器(Container) 算法(Algorithm) 迭代器 ...

  6. STL六大组件 功能与运用(略写)

    1.容器: 各种数据结构:如vector list deque set map,用来存放数据 容器类是容纳.包含一组对象或对象集的对象,通过容器类提供的成员函数可以实现对序列元素的各种操作. 什么是容 ...

  7. 详解 C++ STL 六大组件,看完不懂打我...

    STL 提供了六大组件,彼此组合套用协同工作.这六大组件分别是: 容器(Containers):各种数据结构,如 vector.list.deque.set.map 等.从实现的角度来看,容器是一种 ...

  8. [STL]六大组件介绍(目录 全)

    一般介绍 STL(Standard TemplateLibrary),即标准模板库,是一个具有工业强度的,高效的C++程序库.它被容纳于C++标准程序库(C++ Standard Library)中, ...

  9. c++中algorithm头文件、STL库简介及使用说明

    c++中algorithm头文件.STL库简介及使用说明 c++中algorithm头文件是STL的算法部分,里边定义了各种算法,比如sort之类的.加上algorithm就可以使用stl库里的各种算 ...

最新文章

  1. 英伟达显卡bios修改工具_终于可以吃鸡了!英伟达入门级图灵显卡1650S开卖,性能提升25%...
  2. java8-4 多态的练习以及题目
  3. HDU 6325 Problem G. Interstellar Travel(凸包)
  4. 为什么每个线程都需要创建一个栈?
  5. vscode python print 输出窗口中文乱码
  6. VirtualBox中使用双网卡实现CentOS既能上网(校园网)也能使用SSHclient
  7. mysqluuid去除横岗
  8. Storm-源码分析-Streaming Grouping (backtype.storm.daemon.executor)
  9. r语言算巢式设计方差分析_R语言进行方差分析
  10. 注册(五)之请求处理
  11. rgba与16进制颜色格式互转
  12. 计算机硬盘大小一般都是整数,电脑硬盘如何精准整数分区
  13. metabase开源BI
  14. Linux 查看CPU温度
  15. 知识图谱和行业领域的结合产物-KGB知识图谱介绍
  16. 前端开发工程师职位要求
  17. PostgreSQL小数修约
  18. 互联网寒冬!docker安装nacos集群
  19. Mac Xnip 截图软件快捷键设置
  20. 超市收银系统c语言程序用c 的,C语言 超市收银系统

热门文章

  1. python将两张图片拼接成一张图_python实现两张图片拼接为一张图片并保存
  2. PyTorch深度学习基础之Reduction归约和自动微分操作讲解及实战(附源码 超详细必看)
  3. 电脑可选更新到底是什么?(功能、质量和驱动程序更新)
  4. Oracle——获取当前系统时间以及插入日期型数据(to_date的用法)
  5. 最新网狐旗舰版整理、编译和搭建教程
  6. unity中射线碰撞检测总结
  7. Arduino通过RXTX联通JAVA实现数字温度计案例
  8. 在Origin绘图和表格中插入Latex公式
  9. 堆栈指针寄存器-SP详解
  10. 华为云数据库助力微鲤科技智能升级