之前实现过vector容器,但是容器中最重要的迭代器没有实现,今天学习了针对vector的迭代器的实现
迭代器的实质是将访问该容器的各种函数的抽象集合。
实现vector的迭代器,iterator类中包括vector<T>*
用来指向对应的容器对象,类中实现vector容器成员的运算符重载函数
Vector的设计:
template<typename T>
class Vector
{
public:
Vector(){};
~Vector();
//获取容器迭代器开头
iterator begin(){};
iterator end(){};
//实现插入
void insert(iterator _where, T val){};
void push_back(T val){};
//实现删除
void erase(iterator _where){};
void pop_back(){};
T& operator[](int index){};
//判空
bool Empty(){};
private:
//判满
bool Full(){};
//实现容器扩容
void resize(){};
T* parr;//T类型的指针
int cursize;//存放当前元素个数&&下一个元素插入的位置
int totalsize;//容器当前容量
}
最后应该在Vector类中添加对Iterator的重定义
//类型应和Vector<T>接收到的类型一致
typedef Iterator<T> iterator;
三种构造函数的实现:
Vector()
{
parr = new T[1]();
cursize = 0;
totalsize = 1;
}
//构造大小为size的容器
Vect