试定义一个数组类CArray,声明如下: class CArray{ int *arr; //数组 int n; //数组元素个数 public: CArray(); //构造函数 CArray(int a[],int n); //构造函数 CArray(CArray &t); //拷贝构造函数 ~CArray(); int Insert(int x); //在数组中插入整数x,保持数组从小到大排序 void Print(); //输出数组 }; 在如下主函数中对该类进行测试。 int main() { int a[] = { 3,6,9 },x; CArray a1(a, 3),a2(a1); for (int i = 0; i < 5; i++) { cin >> x; a2.Insert(x); } a2.Print(); return 0; } 输入输出示意如下: 1 2 3 4 5 1 2 3 3 4 5 6 9
时间: 2024-01-27 15:03:50 浏览: 138
int-array:IntArray类的实现,该类在int数组内部进行操作。 该类应为用户提供方便的方法来插入,删除和读取元素
下面是CArray类的定义和主函数的实现,代码中有注释说明每个函数的作用。
```
#include <iostream>
using namespace std;
class CArray{
int *arr; //数组
int n; //数组元素个数
public:
CArray(){ //构造函数
arr = NULL;
n = 0;
}
CArray(int a[], int n){ //构造函数
this->n = n;
arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = a[i];
}
CArray(CArray &t){ //拷贝构造函数
n = t.n;
arr = new int[n];
for (int i = 0; i < n; i++)
arr[i] = t.arr[i];
}
~CArray(){ //析构函数
if (arr) delete[] arr;
}
int Insert(int x){ //在数组中插入整数x,保持数组从小到大排序
int *p = new int[n+1];
int i;
for (i = 0; i < n && arr[i] < x; i++)
p[i] = arr[i];
p[i] = x;
for (; i < n; i++)
p[i+1] = arr[i];
if (arr) delete[] arr;
arr = p;
return ++n;
}
void Print(){ //输出数组
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
}
};
int main(){
int a[] = { 3,6,9 }, x;
CArray a1(a, 3), a2(a1);
for (int i = 0; i < 5; i++) {
cin >> x;
a2.Insert(x);
}
a2.Print();
return 0;
}
```
阅读全文