std::chrono::time_point
De cppreference.com
Definido en el archivo de encabezado <chrono> | ||
template< class Clock, | (desde C++11) | |
La plantilla de clase std::chrono::time_point
representa un punto en el tiempo. Se implementa como si almacenara un valor de tipo Duration
que indica el intervalo de tiempo desde el inicio de la época de Clock
.
| (hasta C++23) |
Contenido |
[editar]Tipos miembro
Tipo miembro | Definición |
clock | Clock , el reloj en el que se mide este punto de tiempo |
duration | Duration , un tipo std::chrono::duration usado para medir el tiempo desde la época. |
rep | Rep , un tipo aritmético que representa el número de tics de la duración. |
period | Period , un tipo std::ratio que representa el período de tic de la duración. |
[editar]Funciones miembro
construye un punto nuevo tiempo Original: constructs a new time point The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
devuelve el punto de tiempo como duración desde el inicio de su reloj Original: returns the time point as duration since the start of its clock The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
modifica el punto de tiempo por la duración dada Original: modifies the time point by the given duration The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
Incrementa o decrementa la duración. (función miembro pública) | |
[estático] | devuelve el punto de tiempo correspondiente a la menor duración Original: returns the time point corresponding to the smallest duration The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro estática pública) |
[estático] | returns the time point corresponding to the largest duration (función miembro estática pública) |
[editar]Funciones no miembro
Realiza operaciones de suma y resta que involucran un punto de tiempo. (plantilla de función) | |
Compara dos puntos de tiempo. (plantilla de función) | |
Convierte un punto de tiempo a otro punto de tiempo en el mismo reloj, con una duración diferente. (plantilla de función) | |
Convierte un punto de tiempo a otro, redondeando hacia abajo (piso). (plantilla de función) | |
Convierte un punto de tiempo a otro, redondeando hacia arriba (techo). (plantilla de función) | |
Convierte un punto de tiempo a otro, redondeando al más cercano, se empata con par. (plantilla de función) |
[editar]Clases auxiliares
Especializa el rasgo std::common_type. (especialización de plantilla de clase) |
[editar]Ejemplo
Ejecuta este código
#include <algorithm>#include <iostream>#include <iomanip>#include <ctime>#include <chrono> void slow_motion(){staticint a[]{1,2,3,4,5,6,7,8,9,10,11,12};while(std::ranges::next_permutation(a).found){}// genera 12! permutaciones} int main(){usingnamespace std::literals;// permite el uso de 24h, 1ms, 1s en lugar de,// p. ej., std::crono::horas(24), según corresponda const std::chrono::time_point<std::chrono::system_clock> now =std::chrono::system_clock::now(); conststd::time_t t_c =std::chrono::system_clock::to_time_t(now - 24h);std::cout<<"Hace 24 horas era la hora "<<std::put_time(std::localtime(&t_c), "%F %T.\n")<<std::flush; const std::chrono::time_point<std::chrono::steady_clock> start =std::chrono::steady_clock::now(); slow_motion(); constauto end =std::chrono::steady_clock::now(); std::cout<<"Los cálculos lentos tomaron "<<std::chrono::duration_cast<std::chrono::microseconds>(end - start).count()<<"µs ≈ "<<(end - start)/ 1ms <<"ms ≈ "// forma casi equivalente a la anterior, pero<<(end - start)/ 1s <<"s.\n";// usando milisegundos y según corresponda}
Posible salida:
Hace 24 horas era la hora 2021-02-15 18:28:52. Los cálculos lentos tomaron 2090448µs ≈ 2090ms ≈ 2s.
[editar]Véase también
(C++11) | Un intervalo de tiempo. (plantilla de clase) |