Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Representerar en klocka som aldrig justeras och som rör sig framåt med en enhetlig hastighet.
Syntax
struct steady_clock;
Anmärkningar
A steady_clock är en monoton klocka, vilket innebär att tiden den rapporterar bara går framåt. Värdet som returneras av ett anrop till now är alltid mindre än eller lika med det värde som returneras av nästa anrop till now.
A steady_clock säkerställer att tiden mellan fästingar är konstant, vilket gör det bättre att mäta intervall än att använda en systemklocka. Systemklockan ger tid för väggklocka. Problemet med att använda tid för väggklocka för att mäta förfluten tid är att tid på väggklockan kan ändras när tidsintervallet mäts. Det kan ändras genom att synkronisera med en annan klocka över nätverket, genom en övergång till sommartid och så vidare. A steady_clock är inte föremål för dessa justeringar, vilket gör det till det bästa sättet att hålla reda på förfluten tid.
              high_resolution_clock är en typedef för steady_clock. I Windows steady_clock omsluter funktionen QueryPerformanceCounter .
Exempel
#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
Alias för bekvämlighetstyp
| Namn | Beskrivning | 
|---|---|
| steady_clock::duration | I Microsofts implementering är det en synonym för nanoseconds, som definieras somduration<long long, nano>. Den representerar en tidsperiod som mäts i miljarddelar av en sekund. | 
| steady_clock::period | I Microsofts implementering är det en synonym för nano, som definieras somstd::ratio<1i64, 1000000000i64>. Den representerar tiden i sekunder (en miljarddel av en sekund) mellan varje tick under varaktigheten. | 
| steady_clock::rep | En synonym för long long, som är den typ som används i Microsoft-implementeringen för att representera antalet klockfästningar i ensteady_clock::duration | 
| steady_clock::time_point | En synonym för time_point<steady_clock>. Används för att representera entime_pointför den här klockan. | 
Offentliga funktioner
| Funktion | Beskrivning | 
|---|---|
| now | Returnerar aktuell tid från steady_clocksom etttime_pointvärde. | 
Offentliga konstanter
| Namn | Beskrivning | 
|---|---|
| steady_clock::is_steady | Rymmer true. Asteady_clockär stadig. Det innebär att du kan använda den här klockan för att få tid före en händelse, tiden efter en händelse och på ett tillförlitligt sätt subtrahera dem för att få varaktigheten för händelsen eftersom klockan inte justeras under den tiden. | 
Kravspecifikation
              rubrik:<chrono>
              Namespace:std::chrono
Se även
<chrono>
file_clock class
high_resolution_clock
              
              local_t Struct
              
              system_clock Struct
              Klassen tai_clock
              Klassen utc_clock
referens för huvudfiler