标准模板库STL

容器:管理特定类型的对象的集合。

迭代器:迭代对象集合的元素。屏蔽了底层容器的实现。

算法:操作对象集合的元素,查找,排序,修改等。算法不直接操作容器,通过迭代器操作。

STL基于数据和操作分离的原则,容器管理数据,算法操作数据,两者通过迭代器结合。


标准模板库STL_第1张图片
STL组件


标准模板库STL_第2张图片
容器

顺序容器

array,vector,deque,list,forward_list(一般用数组或链表实现)

关联容器

有序的,set,multiset,map,multimap,在逻辑上可认为是顺序容器,一般用排序二叉树实现

无序(关联)容器

unsordered_set,unordered_multiset,unsortered_map,unsortered_multimap,一般用hash表实现

vector

动态数组,支持随机访问,在尾后添加删除元素较快,在中间添加和删除元素较慢,可能需要改变容器的容量。

size() is provided for any container class except singly linked lists (class forward_list).

deque(读作check)

双端队列,可在两端增长的动态数组,在首尾插入比较快,在中间插入比较慢。

array

固定大小的数组,只可改变元素的值,在创建的时候指定大小。支持随机访问。默认以类型的默认构造函数出初始化,内置类型初始值未定义。创建时需指定大小,作为类型的一部分。

list

双向,每个元素保存前驱和后继的链接,插入和删除较快,不支持随机访问。

forward_list

单向,每个元素只有后继的链接,不支持push_back,size。

你可能感兴趣的:(标准模板库STL)