STL 容器分为顺序容器 和关联容器
(1)顺序容器包括
1、vector 动态数组实现
支持随机存储,只要知道位置就可以在常数时间内存取任何一个元素。在末端附加或者删除元素性能很好
在中部删除或者添加元素性能不理想,因为要移动后面的其他元素。
Vector容量很重要,因为一旦元素数量大于容量,内存会重新分配,导致references,pointers和iterators都失效
2、deque 动态数组实现
但是数组头尾都开放,通常实现为一组独立的区块
(1)可以在两端安插、删除数据
3、list
(1)list 不支持随即存取
(2)在任何位置安插或者删除都是常数时间完成。
(3)安插或删除不会造成迭代器失效
4、stack 以及queue
stack核心接口为三个成员函数push(), top(),pop(),底层会调用deque的,push_back(),back().
注意:pop()是移除下一个元素但是并不将它返回,top()返回下一个元素但是并不将它移除。
实际上queue单纯的把各项操作转化为内部容器的对应调用。
注意:pop()虽然移除下一个元素,但是并不返回它,front()和 back()返回下一个元素,但是并不
移除它。
5、priority queue
实际上priority queue单纯的把各项操作转化为内部容器的对应调用。
注意优先队列中,“下一个元素”是指优先级最高的元素
核心接口为三个成员函数push(), top(),pop()
6、string
关联容器包括:
set
multiset