Vector简单实现
来源:互联网 发布:强制推行网络实名制 编辑:程序博客网 时间:2024/06/16 00:27
#include <iostream>#include <vector>const int SPARE_CAPACITY = 20;template <typename Object>class Vector{private: int theSize; int theCapacity; Object *objects;public: explicit Vector( int initSize = 0 ):theSize( initSize ), theCapacity( initSize +SPARE_CAPACITY) { objects = new Object[theCapacity]; } Vector( const Vector & rhs ): objects(NULL) { operator=(rhs); } ~Vector() { delete [] objects; } const Vector & operator= (const Vector & rhs ) { if ( this != &rhs ) { delete [] objects; 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_iterator begin( ) const { return &objects[0]; } iterator end( ) { return &objects[ size() ]; } const_iterator end( ) const { return &objects[ size() ]; } };
0 0
- vector简单实现
- 简单vector 的实现
- Vector简单实现
- Vector的简单实现
- 简单实现vector
- 简单的vector实现
- 简单vector实现
- c++vector简单实现
- 简单实现vector
- vector的简单实现
- vector 简单底层实现
- vector的简单实现
- Vector的简单实现
- Vector 简单模拟实现
- C++ vector 的简单实现
- c++ vector的简单实现
- fookwood的简单vector实现
- 1_c++实现简单vector
- Windows下查看和清空本机DNS缓存
- 单片机控制继电器电路
- 一个未知的项目被声明为你的MXML文件的根。切换到源代码模式加以纠正。
- 免费馅饼
- fdgdfgn
- Vector简单实现
- WORD文档损坏修复方法
- Java使用super操作被隐藏的成员变量和方法
- hdu1811(拓扑排序)
- Webkit中Chrome和chromeclient
- WebLogic错误: BEA-001153
- CBP详解;Skip宏块与Direct预测模式浅析
- 深度研究C语言变长函数
- js在鼠标周围加旋转文字