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. vue组件的通信

    组件的引入两种方式 动态组件  <p is="com-a"></p> 直接引入 <com-a></com-a> 插槽功能 父组件引入 ...

  2. 字符串的顺序倒置。(Reverse)

    实际遇到的问题:在串口获取码表数据的时候,有的码表传到电脑上的数字顺序是颠倒的,即:123.45,会显示为54.321.需要重新处理数据.方法很多,也不难实现,现在列举其中5个. public str ...

  3. Python随笔--魔法方法(析构与构造)

    #析构方法的调用

  4. CString与string、char*的区别和转换

    转自:http://blog.csdn.net/luoweifu/article/details/20232379 我们在C++的开发中经常会碰到string.char*以及CString,这三种都表 ...

  5. SVG路径path的贝塞尔曲线指令

    深度好文分享: http://www.zhangxinxu.com/wordpress/2014/06/deep-understand-svg-path-bezier-curves-command/ ...

  6. ORACLE视图简单创建和使用

    1.创建 create view v (pdate,goodsId,productionId,qty)列名 as select p.pdate,p.goodsId,p.productionId,sum ...

  7. webservice接口,用Soapui

    webservice接口怎么测试呢,他不需要你在拼报文了,会给一个webservice的地址,或者wsdl文件,直接在soapui导入,就可以看到这个webservice里面的所有接口,也有报文,直接 ...

  8. C# FTP操作报550错误

    最近在做FTP创建文件夹和上传文件的功能,测试之后一直提示“远程服务器返回错误: (550) 文件不可用(例如,未找到文件,无法访问文件)”,我在网上找了很久的解决方案也没有解决掉这个问题,网上找到的 ...

  9. [Java concurrent][Collections]

    同步容器类 同步容器类包括Vector和Hashtable,二者是早期JDK的一部分.以及一些在JDK1.2中添加的可以由Collections.synchronizedXxx等工厂方法创建的. 这些 ...

  10. mac下修改mysql默认字符集为utf8

    1.首先检查默认安装的字符集 mysql> show variables like '%char%'; +--------------------------+----------------- ...