C++ STL笔记
STL 标准模板库
简单地说就是使用模板的程序设计法。
将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法。
标准模板库(Standard Template Library) 就是一些常用数据结构和算法的模板的集合。
容器 迭代器 算法
容器:
可 容纳各种 数据类型 的通用数据结构,是类模板
迭代器:
可用于依次 存取 容器中元素,类似于指针
算法:
用来 操作容器中的元素的 函数模板
算法本身与他们操作的数据的类型无关 — 函数模板 就是这样
因此他们可以在从简单数组到高度复杂容器的任何数据结构上使用
简单的数组也是一种容器
容器:
可以用于存放各种类型的数据(基本类型的变量,
对象等)的数据结构,都是类模版
1)顺序容器
vector动态数组一维,deque双向队列,list双向链表
2)关联容器 排序的
set,multiset,map,multimap
3)容器适配器查找速度很快 适配器:接口转换器
stack栈,queue队列,priority_queue优先级队列
对象被插入容器中时,被插入的是对象的一个 复制品。许多算法,比如排序,查找,要求对容器中的元素进行比较,有的容器本身就是排序的,所以,放入容器的对象所属的类,往往还应该 重载== 和<运算符。
容器并非排序的,元素的插入位置同元素的值无关。
有vector,deque,list三种