空间配置器


容器类型

  • 标准STL序列容器: vector,string、 deque和list.
  • 标准STL关联容器: set, multiset. map和multimap.
  • 非标准序列容器slist和rope, slist是一个单向链表, rope本质上是一“重型" string
  • 非标准的关联容器hash-set, hash-multiset. hash-map和hash-multimap
  • 标准的非STL容器,包括数组、bitset. valarray、 stack, queue和priority_queue.

Vector

template <class T, class Alloc=alloc>
class vector{
private:
    //vector的嵌套型别定义
    typedef T value_type;
    typedef value_type* pointer;
    typedef value_type* iterator;
    typedef value_type& reference;
    typedef size_t      size_type;
    typedef ptrdiff_t   difference_type;
protect:
    // simple_alloc是SGI STL默认的空间配置器
    typedef simple_alloc<value_type, Alloc> data_allocator;
    iterator start;				// 表示目前使用空间的头
    iterator finish;			// 表示目前使用空间的尾
    iterator end_of_storage;	// 表示目前可用空间的尾
};

vector提供的接口:包括得到vector的属性接口、vector的操作接口以及构造函数:

  • 构造函数:vector()、vector(size_type n、const T& value)、vector(size_type n);
  • 属性函数:begin、end、size、capacity、empty、operator[]、front和back
  • 操作函数:push_back()、pop_back()、erase()、resize()、clear()。