#include<iostream>
using namespce std;
template<typename T>
class MyVector
{
public:
typedef T value;//vector的存储值
typedef T * iterator;//迭代器,其实就是指针
typedef T & reference;//引用
protected:
iterator m_Data;//指针
iterator start;//指针
int m_len;//数据长度
int pos;//数据顶端
public:
//初始化参数,m_len自己输入,迭代器指针为nullptr,迭代器开头指针为nullptr,pos为0
MyVector(int len=0):m_len(len),m_Data(nullptr),start(nullptr),pos(0)
{
if(len>0)
{
//creat
m_Data=new value[len];//固定的长度
start=m_Data;
}
}
~MyVector()
{
delete[] m_Data;
}
void push_back(const value & v)
{
if(pos!=m_len)
{
*(start+pos)=v;
pos++;
}
else
{
cout<<"yue jie"<<endl;
}
}
value pop_back(value & v)
{
--pos;
return *(start+pos);
}
int size()
{
return m_len;
}
iterator begin()
{
return this->start;
}
iterator end()
{
return this->start+this->pos;
}
value & operator[](int n)
{
if(n<m_len)
{
return *(start+n);
}
else
{
cout<<"yue jie"<<endl;
}
}
};
template<typename T>
ostream &operator<<(ostream& cout,MyVector<T> vec)
{
for(int i=0;i<vec.size();i++)
cout<<vec[i]<<endl;
return cout;
}
自己的第一个vector容器!
最新推荐文章于 2024-07-24 20:44:05 发布