Cita de: Gaspi en 16 Febrero 2015, 20:18 PM
Debería cambiar el resto de las funciones en las que pasé una lista como parámetro?
En aquellos casos en los que necesites modificar el valor del puntero (liberar memoria, modificar el tamaño de la memoria reservada, etc), SI. En estos casos es un imperativo para que los cambios se reflejen fuera de la función.
En el resto de casos no es necesario y puede ser incluso contraproducente. Lo más sano es facilitar a cada función la cantidad mínima de datos necesaria.
Cita de: Gaspi en 16 Febrero 2015, 20:18 PM
La materia no cubre objetos, por eso las listas las hacemos de esa manera.
Le discutiré eso pues mi profesor es graduado de la facultad más prestigiosa en ingeniería de mi país, donde estoy estudiando yo ahora, y sé que tiene sus razones para evitar que usemos los String.
Quizás, una de las pegas de la clase "string" es que no admite unicode... pero para eso está la clase "wstring". En cualquier caso, ambas clases forman parte del estándar... y aunque en la librería estándar existen bugs, no es motivo para no usarlos. Básicamente porque cualquier librería externa que tengas que usar (incluso las propias del sistema operativo) también están expuestas a fallos de programación y no por ello dejas de usarlas. Además, la librería estándar suele tener algoritmos altamente optimizados, por lo que suele ser la mejor opción para programas de uso general.
Un saludo.