Digamos que tengo una matriz de entradas y quiero llamar a una función para eliminar los valores más pequeños y más grandes. Por eliminación quiero decir que si mi matriz inicial tenía 7 elementos de longitud, la nueva matriz tiene 5 elementos. El orden de los elementos restantes no importa. He encontrado algunas formas de hacerlo, pero no estoy seguro de cuál es la "forma" C++ de hacerlo, si tiene sentido.¿Cómo elimino el elemento más pequeño y más grande de una matriz de una manera adecuada para C++?
Lo que tengo ahora es que uso std :: sort para ordenar mi matriz y luego utilizo un bucle for para copiar los resultados comenzando desde el segundo elemento y deteniéndome en el penúltimo elemento en una nueva matriz con el tamaño apropiado ¿Cómo debería devolver la matriz?
No puedo devolver la matriz recién creada porque es una variable local para la función. Podría pasar la nueva matriz como argumento para la función, pero ¿no es una forma más antigua de estilo C de hacer esto? También podría usar std :: vector, pero luego tendría que envolver la matriz en un vector y luego desenvolverla (los números deben permanecer en una serie de entradas). Parece exagerado, ¿no?
Vengo de un fondo de Python y solo quiero saber cuál es la forma más adecuada de hacerlo en C++.
Puesto que ya ha escrito algo de código fuente, puede añadirlo a su pregunta para que pudiéramos empezar desde allí y te diriges a la dirección correcta. – karlphillip
¿Por qué está ordenando si solo necesita eliminar max y min? –
@Moron: Tengo curiosidad sobre cuál es su método más eficiente para encontrar max y min. :) –