C++实现的Vector类
来源:互联网 发布:泛洪算法 编辑:程序博客网 时间:2024/06/03 19:06
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;};
0 0
- vector的实现【C++】
- vector类的实现
- Vector类的实现
- C实现的类似vector的容器
- c/c++ vector 的简单实现
- 基于vector的栈实现(C++)
- Vector 的简单实现 C++11
- [C++]vector 的 push_back实现原理
- (C++)Vector 简单的底层实现
- C语言实现 vector
- c实现vector
- c++vector简单实现
- [C++]Vector源码实现
- 【C++】实现容器Vector
- c++:模拟实现vector
- C++实现的Vector类
- 自己实现的Vector类 这是Vector.h文件
- 压榨编译器,用宏+C实现STL的VECTOR
- HTML学习笔记(2)——其他标签
- android学习笔记(3)Button控件的学习
- Word Maze(单词迷宫)
- 打造一个全命令行的Android构建系统
- apache .htaccess文件详解和配置技巧总结
- C++实现的Vector类
- Matlab--数学建模
- 1073. Scientific Notation (20)
- 防止恶意ddos抓取攻击
- 栈的压入、弹出序列
- javascript
- 如何监控Nginx(第一篇)
- .htaccess 详解
- cocos2d-js 热更新模块 使用AssetsManager