定义一元素为整数的动态数组类,并在主函数中调用各个功能:
数据成员:指向元素首地址的指针(用于存储动态申请的数组空间)、当前数组的容量、当前元素的个数;
成员函数:
1.带参/无参构造函数(无参的动态申请10个元素空间并改变当前数组的容量、当前元素的个数值;带参的按参数处理);
2.在尾部增加一元素;
3.修改指定位置上的元素值;
4.查询指定数据的元素是否存在;
5.输出所有数组中的元素;
6.增加数组容量(动态申请新容量数组空间、将原来数组空间中的元素复制到新空间并修改当前数组的容量值,释放delete原来数组空间) ;
7.析构函数(释放动态申请的数组空间) ;
8.二分查询指定数据的元素并返回原始所处的位置(选作,首先在函数内定义一个结构体数组,临时存放当前元素值和位置。其次,使用sort函数对结构体数组排序,最后,利用二分(折半)查找方法找指定元素是否存在。存在,返回原始位置值。否则,返回-1。返回前释放结构体数组的空间)。
#include
#include
#include
#include
using namespace std;
struct start
{
int m_1;//初始位置
int m_2;//初始值
}
class array
{
int * p;
int size;//动态数组中个数
int capacity;//数组容量
public:
array();//构造无参函数
array(int x);//构造有参函数
void add_last(int x);//增加元素
void change(int m_1,int x);//修改m_1处的值为x
int chaxun(int x);//二分查找
void printall();//输出元素
void add_capacity(array,int capacity);//将数组复制到新的空间,并增加数组容量
~array();
}
array::array(){
capacity=10;//无参传入10个元素空间
size=0;
p=new int[capacity];
}
array::array(int x){
capacity=x;//x为元素空间
size=0;
p=new int[capacity]
}
void array::add_last(int x){
if(capacity==size){
return;
}
p[size]=x;//最后增加一个元素
size++;//总数增加1
}
void change(int m_1,int x){
p[m_1-1]=x;//数组从0开始,m_1位置相当于m_1-1位置
}
bool map(struct start a,struct start b){//sort函数的条件
if(a.m_2n;
array a(n);//主函数调用类
cout<<"请输入"<>x;
a.add_last(x);
}
cout<<"修改指定位置元素的值:"<
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)