zoukankan      html  css  js  c++  java
  • 数组模板实现(新手遇到的格式问题)

    不废话,贴代码

    主函数随便写的,大佬轻喷,若有高见评论区回复。

    #include <iostream>
    using namespace std;
    /*
    若在外表达则需要
    template<typename T>//表达错误,数组应作为类中的成员
    Array<T>::Array(int n){} 1.表明作用域 2.记得带头 3.数组记得用指针来new
    */
    template<typename T>//此处的class也可变更为typename;
    class Array
    {
    public:
    	//之前是此处的n出现了问题
    	Array(int n)//类定义,申请相应的空间
    	{
    		if (n > 1)
    			size = n;
    		else
    			size = 1;
    		element = new T[size];
    	}
    	~Array()//删除空间
    	{
    		delete[] element;
    	}
    	void initial()//数组初始化
    	{
    		for (int i = 0; i < size; i++)
    		{
    			element[i] = 0;
    		}
    	}
    
    	void input()//输入数据
    	{
    		for (int i = 0; i < size; i++)
    		{
    			cin >> element[i];
    		}
    	}
    	
    	T add()//进行自身累加,用ans输出
    	{
    		ans = 0;
    		for (int i = 0; i < size; i++)
    		{
    			ans += element[i];
    		}
    		return ans;
    	}
    	double average()//计算平均值,记得用double
    	{
    		double n1 = size;//先转换为double进行计算!!!
    		return add() / n1;//利用前面计算的结果顺便一除
    	}
    	void show()
    	{
    		for (int i = 0; i < size; i++)
    		{
    			cout << element[i] << " ";
    		}
    		cout << endl;
    	}
    protected:
    	int size;
    	T * element;
    	T ans = 0;
    };
    
    int main()
    {
    	int n, jud = 1;
    	cout << "请问您想要生成什么类型的数组1.int 2.double 3.long long(_int64)" << endl;
    	cin >> jud;
    	cout << "请输入数组大小" << endl;
    	cin >> n;
    	switch (jud)
    	{
    	case 1:
    	{
    		Array<int> a1(n);
    		a1.initial();
    		cout << "请输入数组内容" << endl;
    		a1.input();
    		cout << "数组的和为:" << a1.add() << endl;
    		cout << "数组的平均数为 " << a1.average() << endl;
    		cout << "显示数组 " << endl;
    		a1.show();
    		break;
    	}
    	case 2:
    	{
    		Array<double> a1(n);
    		a1.initial();
    		cout << "请输入数组内容" << endl;
    		a1.input();
    		cout << "数组的和为:" << a1.add() << endl;
    		cout << "数组的平均数为 " << a1.average() << endl;
    		cout << "显示数组 " << endl;
    		a1.show();
    		break;
    	}
    	case 3:
    	{
    		Array<long long> a1(n);
    		a1.initial();
    		cout << "请输入数组内容" << endl;
    		a1.input();
    		cout << "数组的和为:" << a1.add() << endl;
    		cout << "数组的平均数为 " << a1.average() << endl;
    		cout << "显示数组 " << endl;
    		a1.show();
    		break;
    	}
    	default:
    		cout << "请输入正确的选项" << endl;
    		break;
    	}
        return 0;
    }
    
  • 相关阅读:
    zbb20181207 springboot @ConfigurationProperties使用
    zbb20181206 logback,lombok 默认日志logback配置解析
    Spring Boot (8) 全局异常处理
    Spring Boot (7) JdbcTemplate访问数据库
    Spring Boot (6) Spring Data JPA
    Spring Boot (4) 静态页面和Thymeleaf模板
    Spring Boot (3) 热部署devtools
    Spring Boot (2) Restful风格接口
    Spring Boot (1) 构建第一个Spring Boot工程
    idea使用maven搭建ssm框架实现登陆商品增删改查
  • 原文地址:https://www.cnblogs.com/gidear/p/11773651.html
Copyright © 2011-2022 走看看