STL大致分类:
(1)容器
序列式容器:vector(向量容器)、deque(双端队列)、list(双向列表)
关联式容器:集合(set、multiset)、映射(map、multimap)
容器适配器:stack、queue、priority_queue
(2)迭代器
Input iterator、Output iterator、Forward iterator、Bidirectional iterator、Random iterator
(3)泛型算法
(4)仿函数(函数对象)
绑定器:bind1st、bind2nd
取反器:not1、not2
(5)空间配置器
这里先看一下,序列式容器@.@(推眼镜)
(1)、vector向量容器
vector的数据结构:线性连续空间
template<class T,class Alloc = alloc>
class vector
{
...
protected:
iterator start; //表示目前使用空间的头
iterator finish; //表示目前使用空间的尾
iterator end_of_storage; //表示目前可用空间的尾
}
运用这三个迭代器可以轻便的提供首尾标识、首尾元素值、容量、大小、空容器判断、下标运算[ ]
template<class T,class Alloc = alloc>
class vector
{
...
public:
iterator begin() {
return start;}
iterator end() {
return finish;}
size_type size() const {
return size_type(end()-begin());}