2021-05-21

C++ 类模板的使用:动态数组的实现

类模板定义

template<typename 模板参数1,typename 模板参数2,....>
class 类名
{
};

实验目的:
1、掌握类模板定义的一般格式
2、掌握类模板数据成员定义与成员函数定义格式及其使用(含类模板外定义成员函数)
实验内容:
1、定义MyArray类,其数据成员有:数组长度length、指向动态数组的指针p
2、定义相关构造函数、析构函数
3、定义display()函数显示数组中的数据
4、定义modifyArray()函数修改数组的长度和元素,要求函数定义在类体之外
具体如下:

步骤1int main()
{
 MyArray<int> a(10,6);//在数组a中放入10个数字6 
 a.display();
 
 MyArray<char> b(20,'A');//在数组b中放入20个字符'A' 
 b.display(); 
} 

步骤2int main()
{
 MyArray<int> a(10,6);//在数组a中放入10个数字6 
 a.display();
 
 a.modifyArray(20,8);//修改数组a的长度,放入20个数字8 
 a.display();
 
 MyArray<char> b(20,'A');//在数组b中放入20个字符'A' 
 b.display();
 
 b.modifyArray(40,'c');//修改数组b的长度,放入40个字符'c' 
 b.display(); 
} 

步骤3char c[10]={'a','b','c','d','e','f','g'};
 b.modifyArray(10,c);//把数组c中的字符放入到数组b中 
 b.display();
 
#include<iostream>
using namespace std;
template<class T>
class MyArray
{
	private:
	    T *p;
	    int length;
	public:
		MyArray(int n,T a)
		{
			length=n;
			p=new T[n];
			for(int i=0;i<length;i++)
			{
				p[i]=a;
			}
		}
		~MyArray()
		{
			cout<<"NO"<<endl;
			delete []p;
			length=0;
			p=NULL;
		}
		void display()
		{
			cout<<length<<endl;
			for(int i=0;i<length;i++)
			{
				cout<<p[i]<<" ";
			}
			cout<<endl;
		}
		//在类模板外定义成员函数 
		void modifyArray(int n,T a);  
		void modifyArray(int n,T *a);
};
template<class T>
void MyArray<T>::modifyArray(int n,T a)
{
	delete []p;
	length=0;
	p=NULL;
	length=n;
	p=new T[n];
	for(int i=0;i<n;i++)
	{
		p[i]=a;
	}
}
template<class T>
void MyArray<T>::modifyArray(int n,T *a)
{
	delete []p;
	length=0;
	p=NULL;
	length=n;
	p=new T[n];
	for(int i=0;i<length;i++)
	{
		p[i]=a[i];
	}
}
int main()
{
	MyArray<int> a(10,6);
	a.display();
	a.modifyArray(20,8);
	a.display();
	MyArray<char> b(20,'A');
	b.display();
	b.modifyArray(40,'c');
	b.display();
	char c[10]={'a','b','c','d','e','f','g','h','i','j'};
	b.modifyArray(10,c);
	b.display();
	return 0;
}

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
2021-03-26 20:54:33,596 - Model - INFO - Epoch 1 (1/200): 2021-03-26 20:57:40,380 - Model - INFO - Train Instance Accuracy: 0.571037 2021-03-26 20:58:16,623 - Model - INFO - Test Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Best Instance Accuracy: 0.718528, Class Accuracy: 0.627357 2021-03-26 20:58:16,623 - Model - INFO - Save model... 2021-03-26 20:58:16,623 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 20:58:16,698 - Model - INFO - Epoch 2 (2/200): 2021-03-26 21:01:26,685 - Model - INFO - Train Instance Accuracy: 0.727947 2021-03-26 21:02:03,642 - Model - INFO - Test Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Best Instance Accuracy: 0.790858, Class Accuracy: 0.702316 2021-03-26 21:02:03,642 - Model - INFO - Save model... 2021-03-26 21:02:03,643 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 2021-03-26 21:02:03,746 - Model - INFO - Epoch 3 (3/200): 2021-03-26 21:05:15,349 - Model - INFO - Train Instance Accuracy: 0.781606 2021-03-26 21:05:51,538 - Model - INFO - Test Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,538 - Model - INFO - Best Instance Accuracy: 0.803641, Class Accuracy: 0.738575 2021-03-26 21:05:51,539 - Model - INFO - Save model... 2021-03-26 21:05:51,539 - Model - INFO - Saving at log/classification/pointnet2_msg_normals/checkpoints/best_model.pth 我有类似于这样的一段txt文件,请你帮我写一段代码来可视化这些训练结果
02-06

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FG.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值