¿Cuáles son los beneficios de usar ‘#include ‘ en lugar de » en C++?

Encontrará que iostream es más eficiente porque no necesita especificar los especificadores de formato como %s,%d,%f etc. para tomar la entrada o para la salida de una variable.
Simplemente haces
cin>cout<

Pero en cstdio debes escribir
Si a es una cadena,
scanf("%s", a);
printf("%s",a);
y esto lleva un poco de tiempo extra.

Hay algunos problemas potenciales de rendimiento con cin/cout :

Por defecto,
cin/cout pierden tiempo sincronizándose con los buffers stdio de la librería C, por lo que puede entremezclar libremente las llamadas a
scanf/printf con las operaciones en cin/cout
. Desactive esto con
std::ios_base::sync_with_stdio
(
false
);
.
Muchos tutoriales de C++ le dicen que escriba
cout
<<
endl
en lugar de
cout << 'n' Pero endl es en realidad más lento porque fuerza un flush, que suele ser innecesario. (Necesitarías flush si estuvieras escribiendo, digamos, una barra de progreso interactiva, pero no cuando escribes un millón de líneas de datos). Escriba
'n'
en lugar de
endl
.Hubo un error en versiones muy antiguas de GCC (anteriores a 2004) que ralentizó significativamente los iostreams de C++. No utilice compiladores antiguos.
Evite estos errores, y cin/cout será tan rápido como
scanf/printf. Mis benchmarks indican que cin/coutis es en realidad un 5%-10% más rápido. Esto se debe probablemente a que
scanf/printf necesitan interpretar su argumento de cadena de formato en tiempo de ejecución e incurrir en la sobrecarga de varargs para los otros argumentos, mientras que la resolución de la sobrecarga para cin/cout se produce en tiempo de compilación. En cualquier caso, la diferencia es lo suficientemente pequeña como para que no tenga que preocuparse de ninguna de las dos formas, ya que casi ningún código razonable realiza tanta entrada/salida como para que esa diferencia importe.