向量vector的实现

template <typename Object>
class vector
{
	public:
		explicit vector ( int initSiez = 0 )
		:thiSize( initSize ), theCapacity( initSize + SPARE_CAPACITY)
		{ object = new object [ theCapacity ];}
		vecotr( const vector & rhs) : object( NULL)
		{ operator=( rhs );}
		~vector()
		{ delete [] objects; }
	
	const vector & operator= ( const vector & rhs)
	{
		if( this != &rhs)
		{
			delete [] object;
			theSize = rhs.size();
			theCapacity = rhs.theCapacity;
			
			objects = new Object( capacity() );
			for( int k = 0; k < size(); k++)
				objects[ k ] = rhs.objects[ k ];
		}
		return *this;
	}
	
	void resize(int newSize)
	{
		if( newSize > theCapacity )
			reserve( newSize * 2 + 1)
		theSize = newSize;
	}
	
	void reserve( int newCapacity )
	{
		if( newCapacity < theSize )
			return;
			
		Object *oldArray = objects;
		objects = new Object[ newCapacity ];
		for( int k = 0; k < theSize; k++)
			objects[ k ] = oldArray[ k ];
			
		theCapacity = newCapacity;
		
		delete [ ] oldArray;
	}
	
	Object & operator[] ( int index)
	{ return objects[ index ];}
	
	const Object & operator[]( int index ) const
	{ return objects[ index ];}
	
	bool empty() const
	{ return size() == 0; }
	
	int size() const
	{	return theSize; }
	
	int capacity() const
	{ return theCapacity; }
	
	void push_back( const Object & x)
	{
		if( theSize == theCapacity )
			reserve( 2 * theCapacity + 1);
		objects[ theSize++ ] = x;
	}
	
	void pop_back()
	{	theSize--; }
	
	const Object & back( ) const
	{ return objects[ theSize - 1 ];}
	
	typedef Object * iterator;
	typedef const Object * const_iterator;
	
	iterator begin()
	{ return &objects [ 0 ]; }
	
	const_iteraotr begin() const
	{ return &objects [ 0 ]; }
	
	iterator end()
	{ return &objects[ size() ]; }
	
	const_iterator end() const
	{ return &objects [ size() ];}
	
	enum { SPARE_CAPACITY = 16;}
	
	private:
		int theSize;
		int theCapacity;
		Object *objects;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值