题目描述
n个有序数a1,a2,...,an组成的数组称为n维向量。 为n维向量定义CVector类,包含私有数据成员:
int *data;//存储n维向量
int n; //向量维数。
方法有:
(1)无参构造函数,设置n=5,data的数据分别为0,1,2,3,4;
(2)构造函数,用虚参n1和数组a初始化n和data的数据;
(3)输出函数,按格式输出n维向量的值;
(4)析构函数。
主函数输入数据,生成CVector对象并调用输出函数测试。
输入
输入n
输入n维向量
输出
分别调用无参和带参构造函数生成2个CVector对象,输出它们的值。
输入样例
6
10 1 2 3 4 5
输出样例
0 1 2 3 4
10 1 2 3 4 5
#include <iostream>
using namespace std;
class cvector
{
int* data;
int n;
public:
cvector()
{
n = 5;
data = new int[5]{ 0,1,2,3,4 };//记得new
}
cvector(int n1, int* a)
{
n = n1;
data = new int[n]; //记得new
for (int i = 0 ; i < n; i++)
*(data + i) = *(a + i); //新申请空间,一个一个复制
}
void print()
{
for (int i = 0; i < n; i++)
{
cout << *(data + i);
if (i != n - 1) //最后一个元素不需要空格
cout << ' ';
else
cout << endl;
}
}
~cvector()
{
delete[]data;
}
};
int main()
{
int n;
cin >> n;
int* d = new int[n]; //记得new
for (int i = 0; i < n; i++)
cin >> *(d + i);
cvector a; //无参
a.print();
cvector b(n, d);//有参
b.print();
}