STL是C++通用库,主要由迭代器、算法、容器、仿函数、内存分配器和配接器组成。
STL主要的主要功能都被声明在13个头文件中,它们分别是:< algorithm >、< deque >、< functional >、< iterator>、< vector>、< list>、< map>、< memory>、< numeric>、< queue>、< set>、< stack>、< utility>。

一、容器

STL提供了很多类型的容器,包括:

  • vertor< T >: 一种支持动态扩展的数组容器
  • list < T>:      双向链表容器
  • queue< T>:  队列容器
  • statck< T>:  栈容器
  • deque< T>: 双端队列容器
  • priority_queue< T>: 优先级队列容器
  • set< T>:  集合容器
  • multiset< T>: 一种容许存在重复元素的集合容器
  • map< key, val>:一种映射关联容器
  • multimap<key,val>:一种允许存在重复key值的映射关联容器

另外,若要将某对象放入上述容器中进行管理,则其要必须满足以下三个条件:

  1. 元素必须是可复制的
  2. 元素必须是可指派(修改)的
  3. 元素内存必须是可释放的,即析构函数不能为private

二、算法

除了容器外,STL还为我们提供了大量非常简单好用的算法,功能包括但不限于查询、排序、赋值、修改、数值运算等,这些算法都是以模板的形式在命名空间std内实现的。借助迭代器,STL的算法函数可以用于任意容器。

三、迭代器

迭代器大概可以分为五种类型,分别是:

  • 输入迭代器
  • 输出迭代器
  • 前向迭代器
  • 双向迭代器
  • 随机访问迭代器(功能最为强大)

迭代器的作用主要是:用来遍历容器,使算法能够不依赖容器而完成特定任务,迭代器的出现使算法和容器分离成为可能。

四、仿函数

仿函数(functor),就是使一个类的使用看上去象一个函数:其实其就是在类中实现一个operator(),使这个类有了类似函数的行为,就是一个仿函数类了。仿函数可以理解为函数的一般形式,仿函数通过运算符定义显著提高了代码运行效率。

5、内存配置器及配接器

最常用的配接器有istream_iterator,提供了函数copy的接口。

另外STL还提供了3种容器配接器:stack< Container>,queue< Container>、deque< Container>。

STL教程(一): 标准模板库--STL概述相关推荐

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

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

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

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

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

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

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

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

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

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

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

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

  7. 第十章 标准模板库STL

    第十章 标准模板库STL 因为是在复习时重写的,无法在PTA上验证,编程题格式可能有误. 判断题 1.可以通过下标随机访问向量vector中的元素.(T) 2.当向量对象的内存用完之后,就会产生越界错 ...

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

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

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

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

最新文章

  1. java类函数默认的保护级别_事件说明
  2. 13. PDE_PTE属性
  3. python 利用matplotlib中imshow()函数绘图
  4. 算法测试—机器学习算法评价指标
  5. 聚焦智造 共筑生态——“2016智能硬件生态圈品牌交流会”即将举行
  6. throws关键字_异常处理的第一种方式,交给别人处理
  7. ubuntu apache配置负载均衡篇(二)
  8. java中什么泛型_java中的泛型(一)
  9. 基于非特定人语音识别芯片的技术方案
  10. Atitit 部署了个webdav服务 as root 目录 1.1. WEB-INF copy to root dir only a web.xml use... 1 1.2. Java.ba
  11. 【feign源码】流程分析
  12. 华为云认证报名条件是什么?考试去哪里考?
  13. Java反编译工具JAD安装与基本使用
  14. 复现bwapp逻辑漏洞-验证机制问题-一.利用Burp Suite中Intruder模块进行字典攻击
  15. 【时间序列】python与时间序列-基本案例教程1(1.47万字,19个图,阅读需要37分钟)...
  16. 计算机网络五层模型(ing)
  17. Tcl/Tk快速入门
  18. influxdb删除错误DB contains shards using both inmem and tsi1 indexes.
  19. python执行sql 语句
  20. 广东计算机二级考试大纲,全国计算机等级考试大纲(一级WINDOWS)

热门文章

  1. RNN文本生成-想为女朋友写诗(一)
  2. potplayer+lavfilter实现双字幕
  3. Windchill 如何更新 IBA 值
  4. JQ JS 列表文本框 ondblclick 获取和设置该行其他元素值。
  5. mysql 查询 不用星号,MySQL Cookbook系列博客
  6. 租房系统(Android)
  7. 马士兵java面向对象_马士兵JAVA零基础后端工程师
  8. 2003年高考语文全国最高分_《高考语文》2019年全国III卷高考语文作文解析
  9. JavaScript Templating
  10. OCP集群初始化配置