数据结构与算法分析之图3-7和图3-8——Vector类
来源:互联网 发布:苏州人口数据统计 编辑:程序博客网 时间:2024/06/03 17:07
/* ===================================================================== */template <typename Object>class Vector{public:explicit Vector( int initSize = 0 ) /* 构造函数初始化式 */: theSize( initSize ), theCapacity( initSize + SPARE_CAPACITY ){objects = new Object[theCapacity];}~Vector() /* 析构函数 */{delete[] objects;}Vector( const Vector & rhs ) : objects( NULL ) /* 复制构造函数 */{operator=( rhs );}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()]);}enum { SPARE_CAPACITY = 16 };private:inttheSize;inttheCapacity;Object* objects;};/* ===================================================================== */
0 0
- 数据结构与算法分析之图3-7和图3-8——Vector类
- 数据结构与算法分析再读之引论和算法分析
- map<string,vector<string>>两种字典排序 ——数据结构与算法分析上的
- 数据结构与算法分析之c++STL的vector特点分析
- 数据结构与算法分析 c++ P75 Vector 实现
- 数据结构与算法之----图
- 数据结构与算法之图
- 数据结构与算法分析之最大子序列和
- 数据结构与算法分析之04栈和队列
- 《算法学习与数据结构》part1 算法分析与数据结构之表、栈和队列
- 《算法学习与数据结构》part3 算法分析与数据结构之数组和广义表
- 数据结构与算法分析思维导图
- 数据结构与算法分析笔记(8)——二叉树和树
- 数据结构与算法分析笔记(7)——栈和队列
- 数据结构与算法分析:3-4章
- 数据结构与算法分析——最大公约数
- 数据结构与算法分析——单链表
- 数据结构与算法分析——栈
- 如何忽略usb host 模式设备连接确认对话框
- JNI使用总结
- 工厂类模式
- 黑马程序员---java学习笔记之IO3
- sql连接操作详解
- 数据结构与算法分析之图3-7和图3-8——Vector类
- iOS开发 简单实现视频音频的边下边播
- Apache Commons工具集简介
- Linux查看日志命令
- REXX 常用脚本(2)——JCL 调用REXX
- org.springframework.beans.factory.BeanCreationException错误解析
- 1186 理工大学ACM平台题答案关于C语言 C语言实验——数组逆序
- 天下没有免费的午餐
- Unity3D 导入脚本のAnimation动画切割