vector是一种顺序容器,占用一段连续的内存空间,sizeof(vector)为16,因为vector类里面定义了4更指针,分别是指向向量头(start),向量尾(finish),空间(end of storage)和用于构造函数需要的一根指针。
里面含有的主要函数是
vector::vector(int size)---分配size个type类型的空间。
vector::vector(int size, type tp)____ 分配size个type类型的空间,每个空间用tp进行初始化。
vector::vector()------定义一个空的vector。
vector::push_back----向vector的尾部放一个type,end向前走一格。若空间不够(end==end of store),则系统会分配一个大小是目前vector大小2倍的空间,将目前vector的元素copy进新定义的空间里,再销毁源
空间。
vector::pop_back----输出vector尾部元素,end向后走一格。
vector::empty----判断目前vector里面是否有元素。
vector::erase(vector::iterator)-----删除vector中iterator指向的那个元素
vector::erase(vector::iterator1,vector::iterator2)----删除vector中
iterator1与iterator2之间的元素。
vector::begin----得到start;
vector::end-----得到finish;
vector::capacity----得到end of storage -start
vector::clear----清空vector里面的所有元素
vector::size--------得到(finish -start)/type
vector::insert(iterator ,type)----在vector中iterator位置前插入type。
template //使用std::alloc类为其空间置配器
class vector
{
// 开始定义巢集
#typedef type value_type;
#typedef value_type * iterator;
#typedef const value_type * const_iterator;
#typedef value_type * reference;
#typedef const value_type * const reference
//定义 其成员
iterator start;
iterator finish;
iterator end of storage;
public:
iterator begin(){ return start;}
iterator end(){return finish;}
size_t capacity() {return sizetype(end of storage -start);}
bool empty(){return (finish==start)? 1,0;}
typedef simple_alloc data_alloc;// 使用该类进行空间配置(其实就是std::alloc的一个实例)
vector::vector(int n,type tp)
{ iterator t=data_alloc::allocate(n);//配置n个元素的空间
ufinitialize——fill——n(t,n,tp)
start=t;
finish=t+n;
end of storage=finish;
}
}
}
阅读(1174) | 评论(0) | 转发(0) |