zz 我是 ojProblem A: 数量的类模板
来源:互联网 发布:女款棉衣淘宝网 编辑:程序博客网 时间:2024/06/07 08:56
Problem A: 数量的类模板
注意输出写法:没有 const是无法运行的 ,还有是 a......value ;a.! a.!!!!!
friend ostream & operator<<(ostream &os,const Data<T> &a) { os<<a.value; return os; }
关于类模板的用法:
类内构造函数不需要<T>
而类外 需要这两句:
template <class T>Data<T>::Data(T a){value=a;}
#include <iostream>using namespace std;template <class T>class Data{private: T value;public: Data():value(0){} Data(T a):value(a){} friend ostream & operator<<(ostream &os,const Data<T> &a) { os<<a.value; return os; } bool operator <(const Data<T> &s)const { return value<s.value; } bool operator >(const Data<T> &s)const { return value>s.value; } T operator +(const Data<T>&s)const { return value+s.value; } void setValue(T s){value=s;} T getvalue(){return value;}};template <class T>class GetResult{ public: static Data<T> getSum(Data<T> *arr, int num)//:求存储在arr中的num个Data对象的和,并返回由这个和构成的一个Data对象。 { Data<T> a; for(int i=0;i<num;i++) a.setValue(a.getvalue()+arr[i].getvalue()); return a; } static Data<T> getMax(Data<T> *arr, int num)//:求存储在arr中的num个Data对象的最大值,并返回这个最大值对应的对象。 { Data<T> a; for(int i=0;i<num;i++) { if(a<arr[i]) a.setValue(arr[i].getvalue()); } return a; } static Data<T> getMin(Data<T> *arr, int num)//:求存储在arr中的num个Data对象的最小值,并返回这个最小值对应的对象。 { Data<T> a; a.setValue(100000000); for(int i=0;i<num;i++) { if(a>arr[i]) a.setValue(arr[i].getvalue()); } return a; }};class Point{private: int x,y;public: Point(int xx=0,int yy=0){x=xx,y=yy;} friend ostream & operator <<(ostream &os,Point &a) { os<<a.x<<" "<<a.y; return os; }};int main(){ Data<int> iData[1001]; Data<double> dData[1001]; int cases, num; char ch; int u; double v; Data<int> a(10), b(20); Data<double> c(3.14), d(-4.1); cout<<"a + b = "<<(a + b)<<endl; cout<<"max(a, b) = "<<(a > b ? a : b)<<endl; cout<<"min(a, b) = "<<(a < b ? a : b)<<endl; cout<<"c + d = "<<(c + d)<<endl; cout<<"max(c, d) = "<<(c > d ? c : d)<<endl; cout<<"min(c, d) = "<<(c < d ? c : d)<<endl; cin>>cases; for (int i = 0; i < cases; i++) { cin>>ch; cin>>num; for (int j = 0; j < num; j++) { if (ch == 'i') { cin>>u; iData[j].setValue(u); } else if (ch == 'd') { cin>>v; dData[j].setValue(v); } } if (ch == 'i') { cout<<GetResult<int>::getMax(iData, num); cout<<" "<<GetResult<int>::getMin(iData, num); cout<<" "<<GetResult<int>::getSum(iData, num)<<endl; } else if (ch == 'd') { cout<<GetResult<double>::getMax(dData, num); cout<<" "<<GetResult<double>::getMin(dData, num); cout<<" "<<GetResult<double>::getSum(dData, num)<<endl; } } return 0;}
0 0
- zz 我是 ojProblem A: 数量的类模板
- Problem A: 数量的类模板
- Problem C: 数量的类模板
- [zz] 我是怎样诱骗漂亮女孩的【完整版】
- 再谈“我是怎么招聘程序员的”(ZZ)
- Codeforces Round #392 (Div. 2) A、B之我是zz
- 关于类模板的友元函数zz
- ZZ:我是怎么选择 Linux 桌面环境的
- 数量不定的模板参数、auto、for的新形式、reference
- 【HDU5892 2016 ACM ICPC Asia Regional Shenyang Online A】【二维树状数组模板 区间修改】nn矩阵内子矩阵中各怪兽数量的奇偶性.cpp
- 获取C++11 变参模板的参数数量
- 【51nod 1009】数字1的数量 【数位DP 模板】
- wordpress 页面属性无“模板”选项 我是如何搞定的
- 宏定义模板 zz
- 模板引擎SMARTY(zz)
- 我是个城里人vs我是个农村人[zz]
- 姊妹篇:我是一条内存(zz)
- 如何将一个模板类A作为模板类B的模板参数
- 详讲FL Studio随机命令
- 如何在TensorFlow中用深度学习修复图像
- adb相关的问题
- jQuery的选择器,有逗号,和没有逗号,的区别
- 2017年4月观影分享
- zz 我是 ojProblem A: 数量的类模板
- 值传递和引用传递
- 1015. 德才论 (25) PAT
- abgularJs路由
- git仓库配置,版本回滚
- 图片之间的自动向上翻滚同时配上触摸动作
- Docker下kafka学习,三部曲之二:本地环境搭建
- 简单的makefile编写
- servlet问题,地址输入掉了一个8080