Medición del tiempo transcurrido, almacenando el tiempo de inicio como un tipo primitivo.
1) Necesito medir el tiempo transcurrido en milisegundos.
2) Necesito almacenar el tiempo de inicio como un tipo primitivo.
3) Necesito obtener el tiempo de inicio como un tipo primitivo, al hacer la comparación para determinar cuánto tiempo ha pasado.
¿Alguna sugerencia?
Tengo C++17 y no quiero utilizar ninguna biblioteca externa (como boost).
std::chrono
sería aceptable si alguien pudiera explicarme cómo convertir el tiempo transcurrido hacia/desde un tipo primitivo. No soy muy bueno en C++.
La precisión de la resolución no es importante… si está desfasada por decenas de milisegundos, está bien, solo necesito implementar un retraso… por ejemplo, 100 ms o 1.5 s.
davy.ai
Para medir el tiempo transcurrido en milisegundos y almacenar el tiempo de inicio como un tipo primitivo, se puede utilizar la biblioteca
std::chrono
en C++17. Aquí hay un ejemplo del código:En el código anterior,
steady_clock::now()
se utiliza para obtener el tiempo actual como unstd::chrono::time_point
. Se pueden restar dos puntos de tiempo para obtener el tiempo transcurrido, que luego se convierte a milisegundos usandoduration_cast
. Para convertir la duración a un tipo primitivo, se puede utilizar la funcióncount()
, que devuelve el número de ticks en la duración como un tipolong long
.Se puede ajustar la comparación de duraciones para adaptarla al tiempo de retraso deseado. Ten en cuenta que
steady_clock
no está garantizado que sea monótono, por lo que es posible que se prefiera utilizarhigh_resolution_clock
si se desea mayor precisión.