C++实现的Vector类
2015-08-07 12:41
344 查看
template <typename Object> class Vector { 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();l theCapacity=rhs.theCapacityl\; 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=newObject[newCapacity ]; for( int k=0;k<theSize;k++) object[ 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 {retrun 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 { retrun objects[theSize-1]; } typedef Object * iterator; typedef const Object * const_iterator; iterator begin() { return &objects[0];} iterator end() { return &objects[size()]; } const_iterator begin() const { return &objects[0]; } const_iterator end() { return &object[ size() ]; } enum { SPARE_CAPACITY =16}; private: int theSize; int theCapacity; Object * object; };
相关文章推荐
- C++ Vector用法详解
- 大家注意vector, list, set, map成员函数erase
- java中vector与hashtable操作实例分享
- C++ vector删除符合条件的元素示例分享
- C++ Vector用法深入剖析
- vector与map的erase()函数详细解析
- vector,map,list,queue的区别详细解析
- C++ vector的用法小结
- stl容器set,map,vector之erase用法与返回值详细解析
- C++中vector的用法实例解析
- c++ vector(向量)使用方法详解(顺序访问vector的多种方式)
- 关于STL中vector容器的一些总结
- JAVA Vector源码解析和示例代码
- Java中的Vector和ArrayList区别及比较
- Java中Vector和ArrayList的区别
- Vector 还是ArrayList
- vector-list-deque
- java集合类Vector与Enumeration用法举例
- ArrayList Vector LinkedList 区别与用法
- Enumeration Vector ArrayList Iterator