2月9日听了杨大佬关于STL库的基本操作的讲课,做一些整理和保存。手动感谢大佬!
STL是Standard Template Library的简称,中文名标准模板库。
从根本上说,STL是一些“容器”的集合。
STL现在是C++的一部分。
STL可分为
容器(containers)、迭代器(iterators)、算法(algorithms)、空间配置器(allocator)、配接器(adapters)、仿函数(functors)六个部分。主要用前三个部分。
其实容器的本质就是一些封装好的数据结构,给出对应的函数接口,只用掌握对应的增删改查的函数接口就能完成对复杂数据结构的操作。
序列式容器
向量(vector) 连续存储的元素
列表(list) 由节点组成的双向链表,每个结点包含着一个元素
双端队列(deque) 连续存储的指向不同元素的指针所组成的数组
适配器容器
栈(stack) 后进先出的值的排列
队列(queue) 先进先出的值的排列
优先队列(priority_queue) 元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列
关联式容器
集合(set) 由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序
多重集合(multiset) 允许存在两个次序相等的元素的集合
映射(map) 由{键,值}对组成的集合,以某种作用于键对上的谓词排列
迭代器 iterator
迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少数容器(如vector)