建立一个Array类
建立一个Array类,具体要求如下:
⚫ 私有数据成员:
int *arr 动态空间,用于存放数组元素 int num 数组元素个数
⚫ 公有成员函数:(以下为必须提供的,除此外的辅助函数自行设计)
Array(int a[],int size);用元素个数为size的a数组初始化arr和num
void clear();删除数组中的重复元素
void sort(int flag) ;对数组中的元素进行排序,若 flag 为 1 则为升序,flag 为0则为降序
Array operator+(Array& B)....................... ;完成当前对象数组元素与B对象中数组元素的合并,
要求合并后的元素无重复值
void print();打印数组元素
〜Array();完成对动态空间的释放
⚫ 在主函数中对相关成员函数进行测试。
程序的参考
#include <iostream>
#include <algorithm>
using namespace std;
class Array // 建立一个Array类
{
private: //私有数据成员:
int *arr ; // 动态空间,用于存放数组元素
int num ; //数组元素个数
public: //公有成员函数:
Array() //缺省构造
{
arr=NULL;
num=0;
}
Array(int a[],int size) //用元素个数为size的a数组初始化arr和num
{
num=size;
arr=new int[num];
for(int i=0;i<num;i++)
arr[i]=a[i];
}
void clear() //删除数组中的重复元素
{
int *b=new int[num];
int ct=0,i,j,a;
for(i=0; i<num; i++)
{
a=arr[i];
for(j=0; j<ct; j++)
if (b[j]==a)
break;
if (j==ct)
b[ct++]=a;
}
ct--;
for(i=0; i<ct; i++)
arr[i]=b[i];
num=ct;
}
void sort(int flag) //对数组中的元素进行排序,若 flag 为 1 则为升序,flag 为0则为降序
{
if (flag==1)
std::sort(arr,arr+num);
else
{
std::sort(arr,arr+num);
int i , t;
for(i=0; i<num/2; i++)
{
t=arr[i];
arr[i]=arr[num-1-i];
arr[num-1-i]=t;
}
}
}
Array operator+(Array& B) //完成当前对象数组元素与B对象中数组元素的合并,要求合并后的元素无重复值
{
int *temp=new int[num+B.num];
int i;
for(i=0;i<num;i++)
temp[i]=arr[i];
for(;i<num+B.num;i++)
temp[i]=B.arr[i-num];
num+=B.num;
delete arr;
arr=temp;
clear();
}
void print() //打印数组元素
{
for(int i=0;i<num;i++)
cout << arr[i] << " ";
cout << endl;
}
};
int main() //测试
{
int a[]={1,43,22,4,2,12,4,4,32};
Array arr(a,9);
arr.clear();
arr.print();
arr.sort(1);
arr.print();
arr.sort(0);
arr.print();
int b[]={4,455,34,3,8,7};
Array brr(b,6);
brr.print();
}
下一篇:求大神帮做个小说封面
上一篇:易语言加密狗每次都得安装吗?