您的位置:首页 > 其它

求数组中的最大值--分别用非类,类,带一个参数的类模板,带2个参数的类模版实现

2013-04-30 22:22 597 查看
求数组中的最大值--分别用非类,类,带一个参数的类模板,带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;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐