自己的第一个vector容器!

#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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值