getchar_unclocked y putchar_unlocked
puedes usar cin / cout pero este es el método más lento que he usado.
entonces aquí viene scanf / printf pero aún más lento.
Estos métodos son seguros para subprocesos. Como verá en muchos problemas de competencia, advierten sobre un gran conjunto de datos y aconsejan utilizar un método de entrada y salida más rápido.
ahora puedes usar getchar_unlocked y putchar_unlocked . Estas son macros.
Aquí está el código.
#include
#include
#define gc getchar_unlocked
#define pc (x) putchar_unlocked (x);
usando el espacio de nombres estándar;
vacío escaso (int & x)
{
registrarse int c = gc ();
x = 0;
para (; c 57; c = gc ());
para (; c> 47 && c <58; c = gc ())
{
x = (x << 1) + (x << 3) + c-48;
}
- ¿Con qué campos de la ciencia será más emocionante trabajar en el futuro cercano?
- ¿Los ingenieros de software necesitan saber matemáticas?
- Cómo hacer un simulador de máquina de turing para realizar la suma binaria
- ¿Qué te gusta más: matemáticas o codificación?
- ¿Cómo juegan las matemáticas un papel importante en la programación?
}
int main ()
{
int a;
char b;
char c [100];
escaso (a);
b = gc ();
int longitud = fread (c, 1, tamaño, stdin);
pc (a + 48 );
tarjeta de circuito impreso);
devuelve 0;
}
aquí el registro se usa porque el tiempo de acceso desde el registro es más rápido que la memoria.
escaso es para ingresar un entero de entrada. puede ingresar el carácter directamente, ya que allí ingresa en forma de cadena, por lo que debemos convertirlo en su forma decimal utilizando el método convencional (multiplique cada dígito por 10 y agregue un nuevo dígito).
fread es mucho más rápido pero toma una cadena de caracteres y da la longitud de la cadena ingresada.
putchar_unlocked obtiene el valor del carácter, por lo que si está ingresando un número entero, agregue 48.
## si está ejecutando en la ventana, elimine desbloqueado y use solo
#define gc getchar
#define pc (x) putchar (x);
de lo contrario, mostrará un error.
gracias !!!!!
codifica bien, duerme bien !!!!