GeekBand C++第五周

STL 对定义的通用容器分三类:顺序性容器、关联式容器和容器适配器。

标准STL顺序容器:vector、deque、list、forward_list、array和string.

标准STL关联容器:set、multiset、map和multimap。

标准STL容器适配器:stack、queue、priority_queue。


GeekBand C++第五周_第1张图片

每个容器定义在一个头文件中文件名与类型名相同。

vector

可变大小数组。支持快速随机访问。在尾部之外的位置插入或删除元素可能很慢。

deque

双端队列。支持快速随机访问。在头尾位置插入或删除速度很快。

list

双向链表。支持双向顺序访问。任何位置插入删除操作速度都很快。

forward_list

单向链表。没有.size操作。其迭代器不支持--运算符。操作特殊

array

固定大小数组。但支持整个array的拷贝或对象赋值操作。

string

保存字符。随机访问快。尾部插入或删除快。

操作

push_back

除array和forward_list。将一个元素加入到一个容器的尾部。

push_front

list,forwad_list和deque支持。将元素插入到容器头部

insert

都支持。将元素插入到迭代器所指定位置之前。

.back

返回尾元素的引用。

.front

返回首元素的引用。

删除(array无)  删除元素可能会导致迭代器失效[311,315]

pop_front

删除首元素,返回void

pop_back

删除尾元素,返回void

erase(p)

删除迭代器p所指定的元素,返回指向被删元素之后元素的迭代器

clear

删除所有元素

泛型算法

大多数定义在头文件algorithm中 部分在numeric

迭代器使算法不依赖容器,但算法依赖于元素类型的操作

算法不会执行容器操作,迭代器可以完成向容器添加元素。

你可能感兴趣的:(GeekBand C++第五周)