一.序列和关联非共同拥有函数
全部标准库共同拥有函数 (构造,相关属性,迭代器,插入与删除,比較。swap)
当中operator>,operator>=,operator<,operator<=,operator==,operator!=均不适用于priority_queue
顺序容器和关联容器共同拥有函数
(1) 序列容器都提供5种同样的构造方法;关联容器都提供3种同样的构造方法
(2) 还有insert插入函数(序列容器有3个同样版本号的插入。关联容器也有3个版本号的)
(3) 序列容器提供2中同样的erase,关联容器提供3种同样的erase。
(4) 属性函数:除vector多了capacity()函数,其余都是size。max_size,empty这3
二.非共同拥有函数
(1)仅仅有序列容器才有的函数
元素的訪问 。 元素的赋值
(2) 仅仅有关联容器才有的函数
查找
(3) 序列元素对首尾元素的插入。删除与訪问
Vector
插入与删除:push_back(),pop_back()
訪问:front,back(分别均有2个版本号)
重要:为什么没有push_front,,可是却有front,这是start迭代器的功劳
Deque。list
插入与删除:push_back(),pop_back()。push_front,pop_front
訪问:同vector
Stack。queue
插入与删除非常明显
訪问:queqe同vector。
可是stack却仅仅有top(也即back)。为什么?
Slist
插入与删除:push_front与pop_front
訪问:front
(4) 仅仅有序列容器才有的訪问之非头尾的訪问
仅仅有Vector与deque才干够,由于仅仅有他们才提供了随机訪问迭代器
1.[] (2种版本号)
2.at(2种版本号)
(5)仅仅有序列容器才有的赋值
都一样;assign(2个版本号)
(6)
Vector和string既有reserve,也有resize。它们两个能够利用reserve来避免不必要的又一次分配。
因为deque不是必需提供所谓的空间保留功能(原因见STL源代码P143),所以其没有reserve函数。
同理。List也仅仅提供resize函数
关联容器不提供这两个函数。
(7)list在序列容器中比較特殊
合并:merge(2个版本号),splice(3个版本号)
排序:sort(2个版本号)
反转
多了删除:remove(2个版本号)。unique(2个版本号)
(8)关联容器特有的查找
Set与multiset:find,lower_bound,upper_bound,equal_range。count。
Map与multimap:前4个函数另一个非const版本号
(9)
Vector和string既有reserve,也有resize,它们两个能够利用reserve来避免不必要的又一次分配。
因为deque不是必需提供所谓的空间保留功能(原因见STL源代码P143)。所以其没有reserve函数。同理,List也仅仅提供resize函数
关联容器不提供这两个函数。