欢迎来到天天文库
浏览记录
ID:57193838
大小:12.44 KB
页数:7页
时间:2020-08-05
《动态数组的C++实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、动态数组的C++实现动态数组在C++中有广泛的应用,但实现起来比较麻烦。这是我编写的一个动态数组的实现程序,程序的大部分功能都能实现,比如插入元素、向动态数组末尾追加元素、显示动态数组的大小、显示动态数组的容量、显示动态数组的元素。还有一些功能我虽然写了实现函数,但没有测试程序的结果,只写了最常见的几种操作。程序的最大优点是测试程序方便。程序代码/**Array.cpp**Createdon:2011-1-19*Author:jiayanbo*/#include#include#include#include<
2、iterator>usingnamespacestd;//定义一个动态数组类classArray{int_size;int_capacity;int*items;public:typedefint*iterator;typedefconstint*const_iterator;enum{DEFAUL_CAP=16};explicitArray(constint&capcity=DEFAUL_CAP);Array(constArray&other);Array&operator=(constArray&other);~Array();iteratorbegin();con
3、st_iteratorbegin()const;iteratorend();const_iteratorend()const;constint&operator[](constint&index)const;int&operator[](constint&index);voidinsert(constint&index,constint&value);voidremove(constint&index);voidappend(constint&value);intsize()const;intcapacity()const;boolempty()const;voidru
4、n();};//构造函数Array::Array(constint&capcity):_size(0),_capacity(capcity){items=newint[_capacity];}//copy构造函数Array::Array(constArray&other):_size(other._size),_capacity(other._capacity){items=newint[_capacity];//for(inti=0;i<_size;++i)//items[i]=other.items[i];std::memcpy(items,other.items,
5、_size*sizeof(int));}//运算符"="重载Array&Array::operator=(constArray&other){if(&other!=this){_size=other._size;_capacity=other._capacity;delete[]items;items=newint[_capacity];std::memcpy(items,other.items,_size*sizeof(int));}return*this;}//查找数组开始位置Array::iteratorArray::begin(){returnitems;}//
6、查找数组开始位置(不能改变)Array::const_iteratorArray::begin()const{returnitems;}//查找数组结束位置Array::iteratorArray::end(){returnitems+_size;}//查找数组结束位置(不能改变)Array::const_iteratorArray::end()const{returnitems+_size;}//查找数组中index下标的元素constint&Array::operator[](constint&index)const{if(index<0
7、
8、_size<=index
9、)throwstd::out_of_range("Array::operator[](constint&)const");returnitems[index];}//查找数组中index下标的元素(不能改变其大小)int&Array::operator[](constint&index){if(index<0
10、
11、_size<=index)throwstd::out_of_range("Array::operator[](constint&)const");returnitems[index];}//在动态数组中插入元素voidArray:
此文档下载收益归作者所有