求数组中的最大值--分别用非类,类,带一个参数的类模板,带2个参数的类模版实现
2013-04-30 22:22
597 查看
求数组中的最大值--分别用非类,类,带一个参数的类模板,带2个参数的类模版实现
找出一个整型数组中的元素的最大值。
(1)
不用类的方法
(2)
用类的方法
(3)
用带一个参数的类模板
![](http://img.blog.csdn.net/20130430222655982)
(4)
带2个参数的类模板
找出一个整型数组中的元素的最大值。
(1)
不用类的方法
#include <iostream> using namespace std; int array[10]; //全局整型数组 int max; //全局变量,max用来存放数组最大值 int main( ) { void set_value( ); //函数声明 void max_value( ); //函数声明 void show_value( ); //函数声明 set_value( ); //对数组元素设置值 max_value( ); //找出数组中的最大元素 show_value( ); //输出最大值 } void set_value( ) //对数组元素进行输入值 { int i; for (i=0; i<10; i++) cin>>array[i]; } void max_value( ) //将数组中最大值赋给max { int i; max=array[0]; for (i=1;i<10;i++) if(array[i]>max) max=array[i]; } void show_value( ) //输出最大值 { cout<<"max="<<max; }
(2)
用类的方法
#include <iostream> using namespace std; class Array_max //声明类 {public: //以下3行为成员函数原型声明 void set_value( ); //对数组元素设置值 void max_value( ); //找出数组中的最大元素 void show_value( ); //输出最大值 private: int array[10]; //整型数组 int max; //max用来存放最大值 }; //成员函数定义,向数组元素输入数值 void Array_max∷set_value( ) { int i; for (i=0; i<10; i++) cin>>array[i]; } //成员函数定义,找数组元素中的最大值 void Array_max∷max_value( ) { int i; max=array[0]; for (i=1;i<10;i++) if(array[i]>max) max=array[i]; } void Array_max∷show_value( ) //成员函数定义,输出最大值 { cout<<"max="<<max; } int main( ) { Array_max arrmax; //定义对象arrmax arrmax.set_value( ); //调用arrmax的set_value函数, 向数组元素输入数值 arrmax.max_value( ); //调用arrmax的max_value函数, 找出数组元素中的最大值 arrmax.show_value( ); //调用arrmax的show_value函数, 输出数组元素中的最大值 return 0; }
(3)
用带一个参数的类模板
/*找出一个数组中的元素的最大值,数组大小为10。(用类模板来实现) 数组元素类型作为类模板的参数 */ #include <iostream> #include <string> using namespace std; template <class T> class Array_max //声明类模板 {public: //以下3行为成员函数原型声明 void set_value( ); //对数组元素设置值 void max_value( ); //找出数组中的最大元素 void show_value( ); //输出最大值 private: T array[10]; //T类型数组 T max; //max用来存放数组中的最大值 }; //成员函数类外定义,向数组元素输入数值 template <class T> void Array_max<T>::set_value( ) { cout<<"请输入"<<10<<"个"<<typeid(T).name()<<"型值,为数组元素赋值"<<endl; int i; for (i=0; i<10; i++) cin>>array[i]; } //成员函数类外定义,找数组元素中的最大值 template <class T> void Array_max<T>::max_value( ) { int i; max=array[0]; for (i=1;i<10;i++) if(array[i]>max) max=array[i]; } //成员函数类外定义,输出最大值 template <class T> void Array_max<T>::show_value( ) { cout<<"max="<<max<<endl; } int main( ) { Array_max<int> arrmax_int; //定义对象arrmax_int,该对象中数组元素类型为整型 arrmax_int.set_value( ); //调用arrmax_int的set_value函数,向数组元素输入数值 arrmax_int.max_value( ); //调用arrmax_int的max_value函数,找出数组元素中的最大值 arrmax_int.show_value( ); //调用arrmax_int的show_value函数,输出数组元素中的最大值 Array_max<double> arrmax_double; //定义对象arrmax_double,该对象中数组元素类型为双精度型 arrmax_double.set_value( ); //调用arrmax_double的set_value函数,向数组元素输入数值 arrmax_double.max_value( ); //调用arrmax_double的max_value函数,找出数组元素中的最大值 arrmax_double.show_value( ); //调用arrmax_double的show_value函数,输出数组元素中的最大值 Array_max<char> arrmax_char; //定义对象arrmax_char,该对象中数组元素类型为字符型 arrmax_char.set_value( ); //调用arrmax_char,的set_value函数,向数组元素输入数值 arrmax_char.max_value( ); //调用arrmax_ichar,的max_value函数,找出数组元素中的最大值 arrmax_char.show_value( ); //调用arrmax_char,的show_value函数,输出数组元素中的最大值 Array_max<string> arrmax_string; //定义对象arrmax_string,该对象中数组元素类型为字符串型 arrmax_string.set_value( ); //调用arrmax_string,的set_value函数,向数组元素输入数值 arrmax_string.max_value( ); //调用arrmax_string,的max_value函数,找出数组元素中的最大值 arrmax_string.show_value( ); //调用arrmax_string,的show_value函数,输出数组元素中的最大值 return 0; }
(4)
带2个参数的类模板
/*找出一个数组中的元素的最大值。(用类模板来实现) 数组元素类型作为类模板的参数,数组大小也作为类模板的参数 */ #include <iostream> #include <string> using namespace std; template <class T,int size> class Array_max //声明类模板 {public: //以下3行为成员函数原型声明 void set_value( ); //对数组元素设置值 void max_value( ); //找出数组中的最大元素 void show_value( ); //输出最大值 private: T array[size]; //T类型数组 T max; //max用来存放数组中的最大值 }; //成员函数类外定义,向数组元素输入数值 template <class T,int size> void Array_max<T,size>::set_value( ) { cout<<"请输入"<<size<<"个"<<typeid(T).name()<<"型值,为数组元素赋值"<<endl; int i; for (i=0; i<size; i++) cin>>array[i]; } //成员函数类外定义,找数组元素中的最大值 template <class T,int size> void Array_max<T,size>::max_value( ) { int i; max=array[0]; for (i=1;i<size;i++) if(array[i]>max) max=array[i]; } //成员函数类外定义,输出最大值 template <class T,int size> void Array_max<T,size>::show_value( ) { cout<<"max="<<max<<endl; } int main( ) { Array_max<int,5> arrmax_int; //定义对象arrmax_int,该对象中数组元素类型为整型,数组大小为5 arrmax_int.set_value( ); //调用arrmax_int的set_value函数,向数组元素输入数值 arrmax_int.max_value( ); //调用arrmax_int的max_value函数,找出数组元素中的最大值 arrmax_int.show_value( ); //调用arrmax_int的show_value函数,输出数组元素中的最大值 Array_max<double,4> arrmax_double; //定义对象arrmax_double,该对象中数组元素类型为双精度型,数组大小为4 arrmax_double.set_value( ); //调用arrmax_double的set_value函数,向数组元素输入数值 arrmax_double.max_value( ); //调用arrmax_double的max_value函数,找出数组元素中的最大值 arrmax_double.show_value( ); //调用arrmax_double的show_value函数,输出数组元素中的最大值 Array_max<char,3> arrmax_char; //定义对象arrmax_char,该对象中数组元素类型为字符型,数组大小为3 arrmax_char.set_value( ); //调用arrmax_char,的set_value函数,向数组元素输入数值 arrmax_char.max_value( ); //调用arrmax_ichar,的max_value函数,找出数组元素中的最大值 arrmax_char.show_value( ); //调用arrmax_char,的show_value函数,输出数组元素中的最大值 Array_max<string,2> arrmax_string; //定义对象arrmax_string,该对象中数组元素类型为字符串型,数组大小为2 arrmax_string.set_value( ); //调用arrmax_string,的set_value函数,向数组元素输入数值 arrmax_string.max_value( ); //调用arrmax_string,的max_value函数,找出数组元素中的最大值 arrmax_string.show_value( ); //调用arrmax_string,的show_value函数,输出数组元素中的最大值 return 0; }
相关文章推荐
- 10.6 分别用字符数组和字符指针作函数参数两种方法编程实现在字符串每个字符间插入一个空格的功能
- linux shell实现求一个多维数组中的最大和最小值
- 创建一个数组, 实现函数init()初始化数组、 实现empty()清空数组、 实现reverse()函数完成数组元素的逆置。 要求:自己设计函数的参数,返回值。
- 类模板,多种类型的类模板,自定义类模板,类模板的默认类型,数组的模板实现,友元和类模板,友元函数,类模板与静态变量,类模板与普通类之间互相继承,类模板作为模板参数,类嵌套,类模板嵌套,类包装器
- 定义一个int型的一维数组,包含10个元素,分别赋一些随机整数,然后求出所有元素的最大值,最小值,平均值,和值,并输出出来。
- 定义一个二维数组,写函数来实现对该二维数组求最大值。(要求,用行指针为函数形参)
- 经典面试题:求数组的最大子序列和;实现函数 :判断一个自负喜欢是否是另一个字符串旋转所得;杨氏矩阵中查找一个数。
- 用数组实现一个简单的heap(最大堆)结构
- 求一个整数数组的最大元素,用递归方法实现
- 利用c++模板实现求数组最大值
- 编写一个C#程序,要求从键盘输入10个数存放在数组中,分别求出最大数和最小数存放在第一第二个元素里
- 求一个整数数组中和最大的连续子数组,例如:[1, 2, -4, 4, 10, -3, 4, -5, 1]的最大连续子数组是[4, 10, -3, 4](需写明思路,并编程实现)
- 1.写一个函数返回参数二进制中1的个数2.获取一个数二进制序列中所有的偶数为和奇数位,分别输出二进序列3.输出一个整数的每一位4.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(b
- //创建一个数组, //实现函数init()初始化数组、 //实现empty()清空数组、 //实现reverse()函数完成数组元素的逆置。 //要求:自己设计函数的参数,返回值。
- [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
- 一个求数组中最大元素的函数模板
- C指针实现找出一个数组中的最大值和次大值
- [java实现]找一个数组的最大和的连续子数组(时间复杂度 O(n))
- c语言:创建一个数组,分别实现函数初始化数组、 清空数组、数组元素的逆置
- //4.创建一个数组, //实现函数init()初始化数组、 //实现empty()清空数组、 //实现reverse()函数完成数组元素的逆置。 //要求:自己设计函数的参数,返回值。