定义
相比较于array这种静态的数组来说,vector是一种可以动态增长的数组。vector可以保证数据在逻辑和物理上都是连续的,因此在原来的空间上,假设数组的空间不够,此时需要重新开辟空间,但是重新开辟的空间不一定和原空间是相连的,因此为了保证vector的数据的连续性,vector在扩容的时候是需要有数据的搬运过程的。
class的声明
template<class T, class Alloc = alloc>
class vector{
public:
typedef T value_type;
typedef value_type iterator;
typedef value_type& reference;
typedef size_t size_type;
protected:
iterator start;
iterator finish;
iterator end_of_storage;
public:
iterator begin(){
return start;}
iterator end(){
return finish;}
size_type size() const{
return size_type(end() - begin());}
size_type capacity() const{
return size_type(end_of_storage - begin());}
bool empty(