Plantilla de clase del experimento 06 (01) de C ++

Descripción del título
Escriba un programa que use plantillas de clase para ordenar, buscar y mostrar todos los valores de los elementos en una matriz. El número de elementos en la matriz es 3≤n≤15.
Descripción: Diseñe una
plantilla de
clase plantilla de clase Matriz para ordenar matrices de tipo T, Buscar y mostrar todos los elementos, el constructor tiene dos parámetros: pasar la primera dirección de la matriz y el número de elementos de la matriz.
Array se instancia en la función principal para generar clases de plantilla Array y Array, ingrese la longitud de las dos matrices y luego ingrese el valor de cada elemento a su vez, llame a la función miembro correspondiente para completar: generar la secuencia original de la matriz, ingrese el valor del elemento que se va a encontrar desde el teclado, Complete la búsqueda (si hay elementos idénticos, devuelva la primera posición numérica encontrada), ordene la matriz de pequeña a grande y envíe el resultado ordenado.
Descripción de
entrada Ingrese 6 filas de datos
, el número de
elementos de matriz de tipo int, el valor de elementos de matriz de tipo int,
el número de
elementos de matriz de tipo doble, el valor de elementos de matriz de tipo doble, el valor
de datos de tipo int
para encontrar, el valor de datos dobles para encontrar, la
descripción de salida, el
tipo de int original Secuencia
Encuentra la ubicación de los datos
Secuencia de tipo int ordenada Secuencia de
tipo doble original
Encuentra la posición de los datos
secuencia de doble ordenada
Ejemplo de entrada
9
6 3 8 1 9 4 7 5 2
6
2,3 6,1 1,5 8,4 6,7 3,8
9
8,5
Muestra de salida
matriz1:
secuencia original: 6 3 8 1 9 4 7 5 2
9 Posición en matriz1: 5
Después de ordenar: 1 2 3 4 5 6 7 8 9
matriz2:
secuencia original: 2.3 6.1 1.5 8.4 6.7 3.8
8.5 No existe en array2
Después de ordenar: 1.5 2.3 3.8 6.1 6.7 8.4 (dos puntos en inglés)

#include<iostream>
using namespace std;

template<class T>
class Array
{
    
    
	T *set;
	int n;
public:
	Array(T *data, int i) 
	{
    
     
		set = data;
		n = i; 
	}
	~Array() {
    
    }
	void sort()
	{
    
    
		T temp;
		for (int i = 1; i < n; i++)
			for (int j = n - 1; j >= i; j--)
				if (set[j - 1] > set[j])
				{
    
    
					temp = set[j - 1]; 
					set[j - 1] = set[j];
					set[j] = temp;
				}
	}	
	T seek(T key)
	{
    
    
		for (int i = 0; i < n; i++)
			if (set[i] == key)
				return i+1;
		return 0;

	}
	void disp()
	{
    
    
		for (int i = 0; i < n; i++)
			cout << set[i] << " ";
		cout << "\n";
	}
};

int main()
{
    
    
	int n1, n2;
	int m1;
	double m2;
	int a[15] = {
    
    0};
	double b[15] = {
    
     0 };
	cin >> n1;
	for (int i = 0; i < n1; i++)
		cin >> a[i];
	cin >> n2;
	for (int i = 0; i < n2; i++)
		cin >> b[i];
	cin >> m1 >> m2;
	Array<int>arr1(a, n1);
	Array<double>arr2(b, n2);
	cout << "array1:" << endl;
	cout << "原序列:";
	arr1.disp();
	if (arr1.seek(m1))
		cout << m1 << "在array1中的位置:" << arr1.seek(m1) << endl;
	else
		cout << m1 << "在array1中不存在" << endl;
	arr1.sort();
	cout << "排序后:" ;
	arr1.disp();
	cout << "array2:" << endl;
	cout << "原序列:";
	arr2.disp();
	if (arr2.seek(m2))
		cout << m2 << "在array2中的位置:" << arr2.seek(m2) << endl;
	else
		cout << m2 << "在array2中不存在" << endl;
	arr2.sort();
	cout << "排序后:";
	arr2.disp();
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_44179485/article/details/105452250
Recomendado
Clasificación