概述
vector作为STL中最常用的容器之一,他基于数组实现,是一个动态数组,其容量能自动增长,同时也提供了许多操作方法,十分高效实用。那么我们来尝试写一个自己的vector吧!(当然,自己写的肯定没有STL中的高效,就当是一次学习探索吧)
开工!
如何实现动态数组以及如何使其容量自动增长?
这里我们用指针通过在堆空间上开辟空间来实现动态数组。设置两个变量theSize(当前所含数据个数)和theCapacity(可容纳数据最大数量),当当前数量即将超过最大容量时,重新分配空间。
vector中常用方法
template <typename Object> class Vector{
private :
int theSize;
int theCapacity;
Object *objects;
public:
typedef Object* iterator;//迭代器
typedef const Object* const_iterator;
explicit Vector(int initSize);
Vector();
Vector(const Vector<Object>&);
~Vector();
const Vector<Object>&operator=(const Vector<Object>&);
void push_back(const Object&);//向末尾添加
void pop_back();//删除最后一个元素
const Object& back()const;//获取最后一个元素
const Object& font()const;//获取第一个元素
Object& back();
Object& front();
void res