Udostępnij za pośrednictwem


steady_clock Struct

Reprezentuje zegar, który nigdy nie jest dostosowywany i porusza się do przodu z jednolitą szybkością.

Składnia

struct steady_clock;

Uwagi

A steady_clock jest monotonicznym zegarem, co oznacza, że czas zgłasza tylko do przodu. Wartość zwracana przez wywołanie metody now jest zawsze mniejsza lub równa wartości zwracanej przez następne wywołanie metody now.

Element steady_clock zapewnia, że czas między znacznikami jest stały, dzięki czemu lepiej jest mierzyć interwały niż za pomocą zegara systemowego. Zegar systemowy zapewnia czas zegara ściany. Problem z użyciem czasu zegara ściany do pomiaru czasu, który upłynął, jest to, że czas zegara ściany może zostać zmodyfikowany podczas mierzenia przedziału czasu. Można go zmodyfikować przez synchronizację z innym zegarem przez sieć, przejście do czasu letniego i tak dalej. Element steady_clock nie podlega tym korektom, co czyni go preferowanym sposobem śledzenia czasu, który upłynął.

high_resolution_clock to definicja typu dla elementu steady_clock. W systemie Windows steady_clock opakowuje QueryPerformanceCounter funkcję.

Przykład

#include <chrono> 
#include <thread>
#include <iostream>

using namespace std::chrono;

int main()
{
    auto begin = steady_clock::now();
    std::this_thread::sleep_for(std::chrono::seconds(1));
    auto end = steady_clock::now();
    
    std::cout << "Elapsed seconds:      "
        << duration_cast<seconds>(end - begin).count()
        << "s\n";

    std::cout << "Elapsed milliseconds: "
        << duration_cast<milliseconds>(end - begin).count()
        << "ms\n";

    std::cout << "Elapsed microseconds: "
        << duration_cast<microseconds>(end - begin).count()
        << "us\n";

    std::cout << "Elapsed nanoseconds:  "
        << duration_cast<nanoseconds>(end - begin).count()
        << " ns\n";

    return 0;
}
Elapsed seconds:      1s
Elapsed milliseconds: 1007ms
Elapsed microseconds: 1007266us
Elapsed nanoseconds:  1007266700 ns

Aliasy typu wygody

Nazwa/nazwisko opis
steady_clock::duration W implementacji firmy Microsoft jest to synonim , nanosecondsktóry jest definiowany jako duration<long long, nano>. Reprezentuje czas trwania mierzony w miliardowych częściach sekundy.
steady_clock::period W implementacji firmy Microsoft jest to synonim , nanoktóry jest definiowany jako std::ratio<1i64, 1000000000i64> . Reprezentuje czas w sekundach (jedna miliardowa sekundy) między każdym znacznikiem w czasie trwania.
steady_clock::rep Synonim , long longktóry jest typem używanym w implementacji firmy Microsoft do reprezentowania liczby znaczników zegara w obiekcie steady_clock::duration
steady_clock::time_point Synonim dla elementu time_point<steady_clock>. Służy do reprezentowania elementu dla tego zegara time_point .

Funkcje publiczne

Function opis
now Zwraca bieżącą godzinę z steady_clock wartości jako time_point .

Stałe publiczne

Nazwa/nazwisko opis
steady_clock::is_steady Przechowuje true. A steady_clock jest stały. Oznacza to, że możesz użyć tego zegara, aby uzyskać czas przed zdarzeniem, czas po zdarzeniu i niezawodnie odjąć je, aby uzyskać czas trwania zdarzenia, ponieważ zegar nie zostanie dostosowany w tym czasie.

Wymagania

Nagłówek: <chrono>

Przestrzeń nazw: std::chrono

Zobacz też

<chrono>
file_clock class
high_resolution_clock
local_t Struct
system_clock Struct
Klasa tai_clock
Klasa utc_clock
Odwołanie do plików nagłówka