Programación General > C/C++
contar palabras de una cadena de caracteres
m0skit0:
Eso ya es problema del profesor que no explica C++ sino C.
Amilius:
Bueno estas son las ventajas de usar const char* :
1. Es mucho más rápido que usar el operador[] de std::string. (Usando un desensamblador (rodeando el código con instrucciones asm que nunca encontrarías en un programa normal ) es posible ubicar el código generado y tener una buena idea de la diferencia.)
2. No tienes que crear una instancia de std::string para llamar a esa función. Es decir si no tenías un objeto std::string de antemano. Reservar y liberar memoria para una instancia temporal es mucho castigo para la eficiencia de cualquier aplicación.
3. No tienes que incluir <string>, como ya dijeron no es necesario conocer esa clase para poder entender el código.
No es que tenga algo en contra de std::string, todo lo contrario, por que detesto reservar y liberar memoria en C todo el tiempo hasta para una simple cadena. Pero si tengo chance de tomar lo mejor de c++ y c, pues lo hago.
m0skit0:
--- Cita de: "Amilius" ---por que detesto reservar y liberar memoria en C todo el tiempo hasta para una simple cadena
--- Fin de la cita ---
Con char* también estás reservando y liberando memoria.
--- Cita de: "Amilius" ---Pero si tengo chance de tomar lo mejor de c++ y c, pues lo hago.
--- Fin de la cita ---
Mezclar C y C++ para un ejemplo pequeño no hay problema. Mezcla C y C++ en un proyecto grande y luego venid llorando.
Amilius:
--- Cita de: "m0skit0" ---Con char* también estás reservando y liberando memoria.
--- Fin de la cita ---
"char*" es sólo un puntero, no implica reservar ni liberar memoria. El ejemplo que puse tampoco reserva ni libera memoria directamente por que es la clase std::string la que reserva y libera la cantidad de memoria necesaria.
--- Cita de: "m0skit0" ---Mezclar C y C++ para un ejemplo pequeño no hay problema. Mezcla C y C++ en un proyecto grande y luego venid llorando.
--- Fin de la cita ---
Para nada, nunca he tenido ese problema. Lo que si es problema es que los programadores digan que saben C++ cuando no tienen idea de POO, o cuando dicen que saben C y creen que la memoria se libera mágicamente o te llenan el código de posibles "buffer overflow". O cuando no se toman el tiempo suficiente para leer la documentación de las bibliotecas que van a usar y te llenan el código de "leaks". También están los que no pueden vivir sin abusar de los patrones de diseño y para colmo los implementan mal. Etc, etc, etc. Pero mezclar C con C++ nunca ha sido problema. :mellow:
Geo:
--- Cita de: "Amilius" ---Pero mezclar C con C++ nunca ha sido problema. :mellow:
--- Fin de la cita ---
+1
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa