STL概念
STL:Standard Template Library,标准模版库。
STL 将“在数据上执行的操作”与“要执行操作的数据分开”,分别以如下概念指代:
···容器:包含、放置数据的地方。
···迭代器:在容器中指出一个位置、或成对使用以划定一个区域,用来限定操作所涉及到的数据范围。
···适配器:为一个模板类,用于提供接口映射。
···算法:要执行的操作。如排序和搜索等。这些算法与数据结构的实现进行了分离。
STL常见的英文单词
STL:Standard Template Library,标准模版库。
list、vector、set、map、stack
容器分类
1.序列式容器
向量(vector) :连续存储的元素
列表(list) :由节点组成的双向链表,每个结点包含着一个元素
双端队列(deque) :连续存储的指向不同元素的指针所组成的数组
2.适配器容器
栈(stack):后进先出(LIFO)的值的排列
队列(queue): 先进先出(FIFO)的值的排列
优先队列(priority_queue) :元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列 < queue >
3.关联式容器
集合(set) :由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素队的谓词排列,没有两个不同的元素能够拥有相同的次序
多重集合(multiset) :允许存在两个次序相等的元素的集合 < set >
映射(map):由{键,值}对组成的集合,以某种作用于键对上的谓词排列 < map >
多重映射(multimap) :允许键对有相等的次序的映射 < map >
对(pair) 和map类似,但只有一对键值 < utility >
智能指针(auto_ptr) :将一个用new开辟内存的指针赋给auto_ptr,会自动回收空间 < memory >
迭代器
迭代器是泛化的指针,通过使用迭代器,开发者可以操作数据结构而无需关心其内部实现。根据迭代器的操作方式的不同,迭代器分为五种:输入迭代器、输出迭代器、前向迭代器、双向迭代器、随机访问迭代器。