5544,
Contenido del tema:
P232 Ejemplo 8.3
Defina una plantilla de función para encontrar el valor máximo de una matriz unidimensional de tipo desconocido.
La función principal instancia la plantilla de función para obtener int int_array[]={11,22,33,44,55,66,77,88,99,1010};
double double_array[]={11.1,22.2,33.3,44.4, 55,5, 66,6, 77,7, 88,8, 99,9, 100,10}; el valor máximo de las dos matrices y la salida.Descripción de entrada y salida:
输出: El int_max es 1010 El double_max es 100.1#include<iostream> #include<cmath> using namespace std; template <class T>T getmax(T a[]){ for(int i=0;i<10;i++){ if(a[0]<a[i]){ a[0]=a[i]; } } return a[0]; } int main(){ int int_array[]={11,22,33,44,55,66,77,88,99,1010}; double double_array[]={11.1,22.2,33.3,44.4,55.5,66.6,77.7,88.8,99.9,100.10}; cout<<"The int_max is "<<getmax(int_array)<<endl; cout<< "The double_max is "<<getmax(double_array)<<endl; }
5545,
Contenido del tema:
P232 Ejemplo 8.4
Defina una plantilla de función con dos parámetros para realizar la salida de estos dos tipos diferentes de datos
Descripción de entrada y salida:
Salida: 99 zhang 123.45 888#include<iostream> using namespace std; template <class T1, class T2>void output(T1 a,T2 b){ cout<<a<<" "<<b<<endl; } int main(){ output(99,"zhang"); output(123.45,888); }
5546,
Contenido del tema:
P236 Ejemplo 8.8
Defina una plantilla de clase que contenga tres miembros de datos privados del mismo tipo, y hay funciones miembro en la plantilla de clase para implementar la operación de suma de los tres datos. Esta función miembro requiere definición fuera de la clase.
Defina un objeto de clase de plantilla para encontrar la suma de dos conjuntos de datos. son (3, 5, 7) y (12.34, 34.56, 56.78) respectivamente.
Descripción de entrada y salida:
输出: La suma de tres_int es 15 La suma de tres_dobles es 103.68
#include<iostream> using namespace std; template <class T> class sum{ private: T a,b,c; public: sum(T a,T b,T c){ this->a=a; this->b=b; this->c=c; } T getsum(); }; template<class T> T sum<T>::getsum(){ return this->a+this->b+this->c; } int main(){ int intsum=0; double doublesum=0; sum<int> s1(3,5,7); intsum=s1.getsum(); cout<<"The three_int sum is "<<intsum<<endl; sum<double> s2(12.34,34.56,56.78); doublesum=s2.getsum(); cout<<"The three_double sum is "<<doublesum<<endl; }
5536,
Contenido del tema:
Escriba una plantilla de función para encontrar el elemento más grande en la matriz, y haga que el tipo y el tipo de retorno de la matriz puedan ser enteros o dobles cuando se llame a la función.
Descripción de entrada y salida:
En la función principal se definen dos matrices unidimensionales, una es un número entero, el valor inicial es 2, 4, 7, 1, 9, 4, 2, 6, 3, 1 y la otra es un punto flotante de doble precisión. type, el valor inicial es para 2.2, 4.4, 7.8, 1.4, 9.9, 4.6, 2.3, 6.6, 3.1, 1.3 int max= 9 double max= 9.9#include<iostream> #include<cmath> using namespace std; template <class T>T getmax(T a[]){ for(int i=0;i<10;i++){ if(a[0]<a[i]){ a[0]=a[i]; } } return a[0]; } int main(){ int int_array[]={2,4,7,1,9,4,2,6,3,1}; double double_array[]={2.2,4.4,7.8,1.4,9.9,4.6,2.3,6.6,3.1,1.3}; cout<<"int max= "<<getmax(int_array)<<endl; cout<<"double max= "<<getmax(double_array)<<endl; }
5537,
Contenido del tema:
Escriba una plantilla de función, use la ordenación de burbujas para organizar el contenido de la matriz de pequeño a grande, y haga que el tipo de la matriz sea entero o doble cuando se llame a la función.
Descripción de entrada y salida:
El valor inicial de una matriz unidimensional de enteros es 2, 4, 7, 10, 9, 5, 8, 6, 3, 1 El valor inicial de una matriz de coma flotante de precisión doble es 2,2, 4,4, 7,8, 1,4 , 9.9, 4.6, 2.3,6.6,3.1,1.3 Salida: 1 2 3 4 5 6 7 8 9 10 1.3 1.4 2.2 2.3 3.1 4.4 4.6 6.6 7.8 9.9
#include<iostream> using namespace std; template<class T> void sort(T a[]){ for(int i=0;i<10;i++){ for(int j=0;j<9;j++){ if(a[j]>a[j+1]){ T t=0; t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } for(int i=0;i<10;i++){ cout<<a[i]<<" "; } cout<<endl; } int main(){ int a[]={2,4,7,10,9,5,8,6,3,1}; double b[]={2.2,4.4,7.8,1.4,9.9,4.6,2.3,6.6,3.1,1.3}; sort(a); sort(b); }
5538,
Contenido del tema:
Cree la entrada de plantilla de clase y, cuando llame al constructor, complete el siguiente trabajo:
(1) Solicitar al usuario que ingrese;
(2) Permitir que el usuario ingrese datos;
(3) Si los datos no están dentro del rango predeterminado, vuelva a solicitar la entrada.
Un objeto de tipo entrada debe definirse de la siguiente forma:
input ob ("mensaje de solicitud", min_value, max_value)
Entre ellos, el mensaje de solicitud es una solicitud de información de entrada. Los valores mínimo y máximo aceptables se especifican mediante min_value y max_value, respectivamente.
Descripción de entrada y salida:
Si los datos están dentro del rango dado, envíe los datos correctamente; de lo contrario, solicite volver a ingresarlos Entrada: 1 9 3 azf Salida: 3 f
#include<iostream> using namespace std; template <class T> class input{ T min_value,max_value; public: input(T min_value,T max_value){ this->max_value=max_value; this->min_value=min_value; } void output(T a){ if(min_value<=a&&a<=max_value){ cout<<a<<endl; } else{ cout<<"数据不符合范围,请重新输入。"; } } }; int main(){ int x,y,z; cin>>x>>y>>z; input< int> in1(x,y); in1.output(z); char a,b,c; cin>>a>>b>>c; input < char> in2(a,b); in2.output(c); }