logo

Chrono v C++

je hlavička C++, která poskytuje kolekci typů a funkcí pro práci s časem. Je součástí C++ Standard Template Library (STL) a je součástí C++11 a novějších verzí.

poskytuje tři hlavní typy hodin: system_clock steady_clock a high_resolution_clock. Tyto hodiny se používají k měření času různými způsoby.

system_clock představuje nástěnné hodiny reálného času v celém systému. Je to ovlivněno úpravami času systému.
steady_clock představuje monotónně rostoucí hodiny, které nejsou ovlivněny změnami systémového času.
high_resolution_clock jsou hodiny s nejkratší periodou tikání dostupnou v systému.



binární typy stromů

také poskytuje sbírku typů trvání včetně trváníkteré lze použít k vyjádření doby trvání. Rep je typ reprezentace (například int nebo long) a Period je poměr trvání (například nanosekundy nebo sekundy).
Navícposkytuje kolekci typů časových bodů včetně time_pointkteré lze použít k reprezentaci určitého bodu v čase. Hodiny jsou typ hodin (například systémové_hodiny) a Trvání je typ trvání (například sekundy).

Knihovna Chrono se používá pro práci s datem a časem. Tato knihovna byla navržena tak, aby se vypořádala se skutečností, že časovače a hodiny se mohou na různých systémech lišit, a tak se časem zlepšila z hlediska přesnosti. Jedinečná věc na chrono je, že poskytuje a precizně neutrální koncept oddělením trvání a časového bodu (časového bodu) od konkrétních hodin. chrono je název hlavičky a také podjmenného prostoru: Všechny prvky v této hlavičce (kromě specializací common_type) nejsou definovány přímo pod jmenným prostorem std (jako většina standardní knihovny), ale pod jmenný prostor std::chrono . Prvky v této hlavičce se zabývají časem. To se děje především pomocí tří konceptů:

Trvání

Objekt trvání vyjadřuje časové rozpětí pomocí počtu minut, dvou hodin nebo deseti milisekund. Například „42 sekund“ by mohlo být reprezentováno dobou trvání skládající se ze 42 dílků 1-sekundové časové jednotky. 

CPP
// C++ program to illustrate the utility  // function duration::count #include     #include   int main () {  using namespace std::chrono;  // std::chrono::milliseconds is an   // instantiation of std::chrono::duration:- 1 second  milliseconds mil(1000);     mil = mil*60;    std::cout << "duration (in periods): ";  std::cout << mil.count() << " milliseconds.n";    std::cout << "duration (in seconds): ";  std::cout << (mil.count() * milliseconds::period::num /   milliseconds::period::den);  std::cout << " seconds.n";  return 0; } 

výstup:

co je awt
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.

Hodiny

Hodiny se skládají z počátečního bodu (nebo epochy) a rychlosti tikání. Například hodiny mohou mít epochu 22. února 1996 a tikají každou sekundu. C++ definuje tři typy hodin:

    systémové_hodiny-Je to aktuální čas podle systému (běžné hodiny, které vidíme na nástrojové liště počítače). Zapisuje se jako std::chrono::system_clocksteady_clock-Jsou to monotónní hodiny, které se nikdy nebudou upravovat. Běží stejnou rychlostí. Zapisuje se jako std::chrono::steady_clockhodiny s vysokým rozlišením- Poskytuje nejmenší možnou dobu klíštění. Je zapsán jako-std::chrono::high_resolution_clock

Časový bod

Objekt time_point vyjadřuje bod v čase vzhledem k epoše hodin. Interně objekt ukládá objekt typu trvání a používá typ Clock jako referenci pro jeho epochu.  

CPP
// C++ program to illustrate time point // and system clock functions #include    #include  #include  // Function to calculate // Fibonacci series long fibonacci(unsigned n) {  if (n < 2) return n;  return fibonacci(n-1) + fibonacci(n-2); } int main() {  // Using time point and system_clock  std::chrono::time_point<std::chrono::system_clock> start end;  start = std::chrono::system_clock::now();  std::cout << "f(42) = " << fibonacci(42) << 'n';  end = std::chrono::system_clock::now();  std::chrono::duration<double> elapsed_seconds = end - start;  std::time_t end_time = std::chrono::system_clock::to_time_t(end);  std::cout << "finished computation at " << std::ctime(&end_time)  << "elapsed time: " << elapsed_seconds.count() << "sn"; } 

výstup:

f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s

Je důležité poznamenat, že přesnost a přesnost hodin a trvání poskytujese může lišit v závislosti na systému a platformě a vždy je dobré zkontrolovat dokumentaci vaší platformy, kde najdete další informace.

java localdate

Vytvořit kvíz