steady_clock
Struct
Představuje hodiny, které se nikdy neupravují a které se posunou vpřed jednotnou rychlostí.
Syntaxe
struct steady_clock;
Poznámky
A steady_clock
je monotónní hodiny, což znamená, že čas, který hlásí, se posune vpřed. Hodnota vrácená voláním now
je vždy menší nebo rovna hodnotě, která je vrácena dalším voláním now
.
Zajišťuje steady_clock
, že čas mezi ticks je konstantní, což usnadňuje měření intervalů než používání systémových hodin. Systémové hodiny poskytují nepřetržitý čas. Problém s měřením uplynulého času pomocí hodinových hodin je, že se při měření časového intervalu může změnit čas na zdi. Můžete ho upravit tak, že se synchronizuje s dalšími hodinami v síti, přechodem na letní čas atd. Na tyto úpravy se nepodléhá A steady_clock
, takže je upřednostňovaným způsobem sledování uplynulého času.
high_resolution_clock
je typedef pro steady_clock
. Ve Windows steady_clock
zabalí QueryPerformanceCounter
funkci.
Příklad
#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 typů pohodlí
Název | Popis |
---|---|
steady_clock::duration |
V implementaci Microsoftu se jedná o synonymum , nanoseconds které je definováno jako duration<long long, nano> . Představuje dobu trvání měřenou v miliardách sekundy. |
steady_clock::period |
V implementaci Microsoftu se jedná o synonymum , nano které je definováno jako std::ratio<1i64, 1000000000i64> . Představuje čas v sekundách (jedna miliarda sekundy) mezi jednotlivými záškrty v době trvání. |
steady_clock::rep |
Synonymum pro long long , což je typ použitý v implementaci Microsoftu, který představuje počet hodinových záškrtů v steady_clock::duration |
steady_clock::time_point |
Synonymum pro time_point<steady_clock> . Používá se k reprezentaci time_point pro tento čas. |
Veřejné funkce
Function | Popis |
---|---|
now |
Vrátí aktuální čas z steady_clock time_point hodnoty. |
Veřejné konstanty
Název | Popis |
---|---|
steady_clock::is_steady |
Drží true . A steady_clock je stabilní. To znamená, že tyto hodiny můžete použít k získání času před událostí, času po události a spolehlivému odečtení doby trvání události, protože hodiny se během této doby neupraví. |
Požadavky
Záhlaví: <chrono>
Obor názvů: std::chrono
Viz také
<chrono>
file_clock class
high_resolution_clock
local_t
Struct
system_clock
Struct
Třída tai_clock
Třída utc_clock
Referenční informace k souborům hlaviček