STL,中文名标准模板库,是一套C++的标准模板类(是类!),包含一些模板类和函数,提供常用的算法和数据结构。

  STL分为:迭代器,容器,适配器,算法以及函数对象。

--迭代器是一种检查容器内元素并遍历元素的数据类型,是对容器访问逻辑的抽象,通过间接的方式实现容器与算法之间的独立,提供对容器中对象的访问方法(例如指针)。

--容器就是装有其他对象或者指向其他对象的指针的容器(容器也是对象类型的),能够自动管理自己的内存。还包括了一些处理其他对象的方法(可扩展)。

--适配器是组成容器实现的一种数据结构。

--算法算法作用于容器。提供执行各种操作的方式(对容器内容执行初始化、排序、搜索和转换等操作)。

————————————————————————————————————————————————

定义容器类型对象需要导入头文件<vector>,<list>,<deque>...

所有容器都是类模板,都有默认的构造函数(无参)

例如:vector<string> str;

    尖括号里说明存放的元素的数据类型(对象)。

容器:顺序容器:向量vector,链表list,队列deque

     关联容器:map,set,multiset,multimap

     容器适配器:栈stack,队列queue,优先级队列priority_queue

顺序容器的元素之间是顺序关系的线性表,元素有固定的位置且位置与元素的操作时间地点无关。

关联容器是非线性的树结构,个元素之间没有严格的物理上的顺序,以键值方式保存。

容器适配器是实现容器的接口,不直接保存元素,仅发生接口转换。

vector  连续的存储空间,允许随机访问,可通过下表访问,因为添加删除中间的元素要移动改动元素后面元素的位置,而添加元素需要分配更大的内存空间并释放掉旧的空间。

list  非连续,由若干节点构成,每个节点包括信息块,前驱指针,后驱指针。对中间数据进行操作比vector快,不支持随机访问和下标,可以迅速的插入和删除数据(只对要改动的元素及其前后最多三个元素有影响)

deque 多个连续的储存快(好比多个vector但不连续),允许随机访问,在一个映射结构中保存各个块的跟踪及顺序。

没写完等两天再写,学艺不精还想找个实习单位。。。

STL标准模板类的更多相关文章

  1. STL标准模板库(简介)

    标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...

  2. STL标准模板库介绍

    1. STL介绍 标准模板库STL是当今每个从事C++编程的人需要掌握的技术,所有很有必要总结下 本文将介绍STL并探讨它的三个主要概念:容器.迭代器.算法. STL的最大特点就是: 数据结构和算法的 ...

  3. STL学习系列一:STL(标准模板库)理论基础

    STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. STL的从广 ...

  4. STL(标准模板库)理论基础,容器,迭代器,算法

    基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间.   ...

  5. STL(标准模板库)基本概念

    一.什么是STL STL(Standard Template Library,标准模板库)的从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),容器 ...

  6. STL标准模板库 向量容器(vector)

    向量容器使用动态数组存储.管理对象.因为数组是一个随机访问数据结构,所以可以随机访问向量中的元素.在数组中间或是开始处插入一个元素是费时的,特别是在数组非常大的时候更是如此.然而在数组末端插入元素却很 ...

  7. C++ Templates STL标准模板库的基本概念

    STL标准库包括几个重要的组件:容器.迭代器和算法.迭代器iterator,用来在一个对象群集的元素上进行遍历操作.这个对象群集或许是一个容器,或许是容器的一部分.迭代器的主要好处是,为所有的容器提供 ...

  8. STL标准模板库之vector

    目录 vector容器 1)什么是vector 2)如何定义 3)常用的Vector函数 1.容量函数 2.增加函数 3.删除函数 4.迭代器 5.访问函数 6.其他函数及操作 7.算法 STL提供了 ...

  9. C++ STL标准模板库(list)

    //list的使用 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<list> using namesp ...

随机推荐

  1. Python爬虫入门之Urllib库的基本使用

    那么接下来,小伙伴们就一起和我真正迈向我们的爬虫之路吧. 1.分分钟扒一个网页下来 怎样扒网页呢?其实就是根据URL来获取它的网页信息,虽然我们在浏览器中看到的是一幅幅优美的画面,但是其实是由浏览器解 ...

  2. SQL求几何重心

    ST_Centroid(geometry); geometry :a specified ST_Geometry e.g.: select ST_AsText(ST_Centroid('0103000 ...

  3. 第1次作业—— 熟悉 MoocTest环境

    2.1 Mooctest 使用心得 Mooctest很方便,可以即时测评自己写的测试代码,获得覆盖率和报告,不需要自己安装配置环境 而且安装配置插件的环境也很简单,可以专注于测试本身 2.2 Juni ...

  4. LeetCode 148 排序链表

    题目: 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序. 示例 1: 输入: 4->2->1->3 输出: 1->2->3->4 示例 2 ...

  5. CentOS6.5 - linux在虚拟机连接主机(使用nat)

    NAT模式:是虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网.也就是说,使用NAT模式可以实现在虚拟系统里访问互联网. NAT模式下的虚拟系统的TCP/IP配置信息是由VMn ...

  6. Git通过密钥对远程仓库上传和更新详细操作

    1,先到ssh中ls查看之前本地生成的公钥和私钥,然后将别人的密钥替换掉自己的密钥,这里我把别人的密钥放在d:/desktop/id_rsa 中,利用cp /D/Desktop/id_rsa  id_ ...

  7. tcp 与udp 的区别

    1.TCP和UDP对比 TCP(Transmission Control Protocol)可靠的.面向连接的协议(eg:打电话).传输效率低全双工通信(发送缓存&接收缓存).面向字节流.使用 ...

  8. java知识点总结----java入门(1)

    1.首先的明白什么是java? 1.java是一门编程语言 2.java是开发环境 3.java是运行环境 2.java概况--java构架 1.J2SE (Java2 Standard Editio ...

  9. IP通信基础课堂笔记----第三章(自认为的重点)

    网络层协议IP IP数据包格式:固定部分        {  标识(16):计数器,源站每发送一个分组,标识+1:源IP地址的标识是全网唯一的. (包含TCP/UDP首部)  |  标志(3):当最低 ...

  10. classPath与PATH

    PATH是window的变量,而不是Java的变量: 通常配置PATH路径是为了找到需要的XX.exe命令,而且配置在用户的变量下面: 例如:JDK中的javac与java命令在cmd中使用,需要把命 ...