最新实验报告miniVectorWord格式.docx
- 文档编号:3008795
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:13
- 大小:69KB
最新实验报告miniVectorWord格式.docx
《最新实验报告miniVectorWord格式.docx》由会员分享,可在线阅读,更多相关《最新实验报告miniVectorWord格式.docx(13页珍藏版)》请在冰点文库上搜索。
0||pos>
vSize)
{
cout<
<
"
NoPermitting\n"
;
exit
(1);
}
for(intx=vSize;
x>
vSize-1-pos;
--x)
vArr[x]=vArr[x-1];
vArr[pos-1]=num;
vSize++;
}
2、关于Delete函数:
首先遍历找到要删除元素,然后用一个从要删除的位置循环到最后,把要删除的位置的数用后面的数覆盖掉,最后把实际容量减1,如果找不到要删除的数则输出“NOExisting”。
voidminiVector:
Delete(intk)
boolexist=false;
for(inta=0;
a<
vSize;
++a)
if(vArr[a]==k)
{
exist=true;
intflag=a;
for(inty=flag;
y<
y++)
vArr[y]=vArr[y+1];
vSize--;
}
if(!
exist)cout<
NOExisting\n"
}
●程序代码
//miniVector.h
#include<
iostream>
usingnamespacestd;
classminiVector
public:
miniVector(intsize=0);
//构造函数
miniVector(constminiVector&
obj);
//以对象为形参的构造函数
~miniVector();
//析构函数
miniVector&
operator=(constminiVector&
rhs);
//重载赋值运算符实现对象与对象之间的赋值
int&
back();
//返回数组最后一个元素的值
constint&
back()const;
//返回数组最后一个元素的值且为只读
operator[](inti);
//重载下标运算符
operator[](inti)const;
//重载下标运算符且为只读
voidpush_back(constint&
item);
//从数组的尾部压入一个值为item的元素
voidpop_back();
//删除数组最后一个元素
intsize()const;
//返回数组元素个数
boolempty()const;
//清空数组元素
intcapacity()const;
//返回数组容量且为只读
voiddisplay(ostream&
out);
//输出数组中的元素
voidDelete(intk);
//删除数组中指定值的元素
voidinsert(intpos,intnum);
//在指定位置插入指定数值的元素
private:
intvCapacity;
//数组容量
intvSize;
//数组元素数量
int*vArr;
//指向动态数组的指针
voidreserve(intn,boolcopy);
//调整数组容量,且可以保留数组原数据
};
//miniVector.cpp
//主要是两个构造函数,一个是输入元素个数的元素默认值为0的构造函数,
一个则为以对象为形参的构造函数
#include"
miniVector.h"
miniVector:
miniVector(intsize):
vSize(0),vCapacity(0),vArr(NULL)
inti;
if(size==0)return;
reserve(size,false);
vSize=size;
for(i=0;
i<
++i)
vArr[i]=0;
miniVector(constminiVector&
obj):
if(obj.vSize==0)return;
reserve(obj.vSize,false);
vSize=obj.vSize;
vArr[i]=obj.vArr[i];
//~miniVector.cpp
//析构函数
~miniVector()
if(vArr!
=NULL)
delete[]vArr;
//back.cpp
//返回最后一个元素的值
int&
miniVector:
back()
if(vSize==0)
miniVectorback():
vectorempty\n"
returnvArr[vSize-1];
constint&
back()const
//capacity.cpp
//返回数组的总容量
intminiVector:
capacity()const
returnvCapacity;
//delete.cpp
//删除指定数值的元素
voidminiVector:
for(inty=flag;
//display.cpp
//输出数组中的所有元素
display(ostream&
out)
for(inti=0;
out<
vArr[i]<
out<
endl;
ostream&
operator<
(ostream&
out,miniVector&
vec)
vec.display(out);
returnout;
//empty.cpp
//判断数组是否为空
boolminiVector:
empty()const
returnvSize==0;
//insert.cpp
//在特定位置插入特定元素
//operator[].cpp
//重载下标运算符
operator[](inti)
if(i<
0||i>
cerr<
miniVector:
indexrangeerror\n"
returnvArr[i];
//operator=.cpp
//重载赋值运算符实现对象之间的赋值
miniVector&
operator=(constminiVector&
rhs)
if(rhs.vSize>
vSize)
"
rhs.vSize;
vArr[i]=rhs.vArr[i];
vSize=rhs.vSize;
returnminiVector(vSize);
//pop_back.cpp
//删除最后一个元素
pop_back()
miniVectorpop_back():
vectorisempty\n"
vSize--;
//push_back.cpp
//在末尾添加一个元素
push_back(constint&
item)
if(vCapacity==0)reserve(1,false);
elsereserve(2*vCapacity,true);
vArr[vSize]=item;
//reserve.cpp
//调整数组容量
reserve(intn,boolcopy)
int*newArr;
newArr=newint[n];
if(newArr==NULL)
miniVectorreserve():
memoryallocationfailure\n"
if(copy)
for(i=0;
i++)
newArr[i]=vArr[i];
=NULL)delete[]vArr;
vArr=newArr;
vCapacity=n;
//size.cpp
//返回数组实际元素个数
size()const
returnvSize;
//main.cpp
intmain()
miniVectora(10);
//定义一个miniVector对象,容量为10;
cout<
对象a中的元素:
\n"
a.display(cout);
//输出a中的所以元素
a.push_back(6);
push_back函数作用后对象a中的元素:
//测试push_back函数
miniVectorb(a);
对象b中的元素:
b.display(cout);
//测试miniVector以对象为形参的构造函数
b.Delete(6);
delete函数作用后对象b中的元素:
//测试delete函数
b.insert(3,78);
insert函数作用后对象b中的元素:
//测试insert函数
b.pop_back();
pop_back函数作用后对象b中的元素:
//测试pop_back函数
miniVectorc=b;
对象c复制了对象b后b中的元素:
c.display(cout);
//测试=重载函数
对象c数组最后一个元素的值:
<
c.back()<
//测试back函数
如果c数组为空则输出1:
c.empty()<
b数组的元素个数为:
b.size()<
//测试size函数
b数组的容量为:
b.capacity()<
//测试capacity函数
b[15]=a[3];
//测试下标运算符重载,越界报错
●测试结果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 实验 报告 miniVector
![提示](https://static.bingdoc.com/images/bang_tan.gif)