一.STL简介
1.简介
STL<标准模板库>是通用类模板和算法的集合,他提供给程序员一些标准的数据结构的实现。
2.三类数据结构
1.顺序性容器
vector 从后面快速的插入与删除,直接访问任何元素
deque 从前面或后面快速的插入与删除,直接访问任何元素
list 双链表,从任何地方快速插入与删除
2.关联容器
set 快速查找,不允许重复值
multiset 快速查找,允许重复值
map 一对多映射,基于关键字快速查找,不允许重复值
multimap 一对多映射,基于关键字快速查找,允许重复值
3.容器适配器
stack 后进先出
queue 先进先出
priority_queue 最高优先级元素总是第一个出列
二.顺序性容器
1.C++ Vector(向量容器)
1).特点
1.看作动态数组,指定一块如同数组一样的连续存储,但空间可以动态扩展
2.随机访问方便
3.连续存储节省空间
4.内部插入、删除效率低下,只能在后端进行追加和删除
5.动态添加的数据超过vector默认分配的大小进行内存重新分配、拷贝和释放,操作非常消耗性能
2)语法
1. Constructors 构造函数
vector<int> v1; //构造一个空的vector
vector<int> v1( 5, 42 ); //构造了一个包含5个值为42的元素的Vector
2.at() 返回指定位置的元素
TYPE at( size_type loc );//差不多等同v[i];但比v[i]安全;
3.empty() 判断Vector是否为空(返回true时为空)
4. pop_back() 移除最后一个元素
5.push_back() 在Vector最后添加一个元素
2.C++ List (双向链表)
1)特点
1.不使用连续的内存空间,随意进行动态操作
2.任何位置快速进行插入和删除
3.不能进行内部的随机访问,不支持[ ]操作符和vector.at(