Cpp_stl
空间配置器
容器类型
- 标准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()。