STL标准模板类
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标准模板类的更多相关文章
- STL标准模板库(简介)
标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...
- STL标准模板库介绍
1. STL介绍 标准模板库STL是当今每个从事C++编程的人需要掌握的技术,所有很有必要总结下 本文将介绍STL并探讨它的三个主要概念:容器.迭代器.算法. STL的最大特点就是: 数据结构和算法的 ...
- STL学习系列一:STL(标准模板库)理论基础
STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. STL的从广 ...
- STL(标准模板库)理论基础,容器,迭代器,算法
基本概念 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.现然主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. ...
- STL(标准模板库)基本概念
一.什么是STL STL(Standard Template Library,标准模板库)的从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),容器 ...
- STL标准模板库 向量容器(vector)
向量容器使用动态数组存储.管理对象.因为数组是一个随机访问数据结构,所以可以随机访问向量中的元素.在数组中间或是开始处插入一个元素是费时的,特别是在数组非常大的时候更是如此.然而在数组末端插入元素却很 ...
- C++ Templates STL标准模板库的基本概念
STL标准库包括几个重要的组件:容器.迭代器和算法.迭代器iterator,用来在一个对象群集的元素上进行遍历操作.这个对象群集或许是一个容器,或许是容器的一部分.迭代器的主要好处是,为所有的容器提供 ...
- STL标准模板库之vector
目录 vector容器 1)什么是vector 2)如何定义 3)常用的Vector函数 1.容量函数 2.增加函数 3.删除函数 4.迭代器 5.访问函数 6.其他函数及操作 7.算法 STL提供了 ...
- C++ STL标准模板库(list)
//list的使用 #define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<list> using namesp ...
随机推荐
- winfrom程序Datagridview列名问题
之前在做程序的时候,有遇到过这个问题: 无法将类型“string”隐式转换为“System.Windows.Forms.DataGridViewTextBoxColume"解决方法 解决办法 ...
- 开发一个简单的chrome插件-解析本地markdown文件
准备软件环境 1. 软件环境 首先,需要使用到的软件和工具环境如下: 一个最新的chrome浏览器 编辑器vscode 2. 使用的js库 代码高亮库:prismjs https://prismjs. ...
- const修饰指针+volatile +restrict
const这块的难点 const修饰指针有以下的几种形式 ,不同的形式 它的意义不一样. 形式1: int a=23: const int *p=&a: a是int型,&a是int * ...
- jqgrid自定义列表开发=》实现高级查询
标题已指出本文要说的三件事,首先是主角jqgrid,将应用在自定义列表中,重点介绍如何实现高级查询. 使用jqgrid实现自定义列表分为两大步骤,首先是要根据业务完成jqgrid的对象定义,即列表的描 ...
- java线程入门一
线程优先级: 在JAVA线程中,通过一个int型变量priority来控制线程优先级,线程的有限机为1-10,默认为5,优先级高的线程获得的运行时间要高于优先级低的线程.但这只是一个提示,操作系统和J ...
- android spf中存list<string>
private void setSpfList() { final SharedPreferences mSharedPreferences = getPreferences(Context.MODE ...
- 【转】Linux的nm查看动态库和静态库的符号
转自https://blog.csdn.net/qq_16683355/article/details/52297884 功能 列出.o..a..so中的符号信息,包括符号的值,符号类型及符号名称等. ...
- java知识点总结--java数据类型
java中的两大数据类型 1.基本数据类型:也称作内置类型,java语言本身提供的基本数据类型是其他类型(包括java核心类和用户自定义类)的基础 2.引用数据类型:java语言根据基本类型扩展数的其 ...
- 2018-2019-2 《网络对抗技术》Exp2 后门原理与实践 Week3 20165326
Exp2 后门原理与实践 目录 1. 实验原理 2. 实验内容 3. 问题回答 4. 心得体会 实验原理简介 后门:不经过正常流程而访问系统的通道 ncat:底层工具,进行基本的TCP UDP数据收发 ...
- 字符串a-b
#include<iostream> #include<stdio.h> #include<algorithm> #include<cmath> #in ...