STL库主要由三部分组成:容器,迭代器和泛型算法, 由于STL是集面向对象设计,运算符重载,动态绑定,泛型设计等技术,容器里可存储任意类型的数据。
容器包含:string对象(可用来存储字符串)
序列化容器:
array 数组 (固定长度的数组声明,不可动态变化,但是效率高,适用于确定长度的用途)
vector 可动态增长的数组,当数组满时,会自行申请两倍的长度,连续的地址空间
list 双链表 使用指针连接,不连续的内存地址空间
deque 双向开口的连续线性地址空间,即头尾两端都可以进行元素的插入和删除
stack 栈 ,后进先出
queue 队列,先进先出
priority_queue 优先队列
关联式容器:
1.set (1-4 使用红黑树实现,set只有key)
2.map (pair(key,value),输出时是有序的)
3.multiset (key可重复)
4.multimap
5.hash_set(4-8 使用的是哈斯表实现,hash_set只有key)
6.hash_map (输出时是无序的)
7.hash_multiset
8.hash_multimap
迭代器:迭代器是一种smart-pointer 智能指针
泛型算法:heap算法,数值算法,set相关算法(并集,交集,差集).....