logo

Chrono C++ nyelven

egy C++ fejléc, amely típusok és függvények gyűjteményét kínálja az idő múlásával történő munkavégzéshez. A C++ Standard Template Library (STL) része, és benne van a C++11 és újabb verziókban.

három fő óratípust biztosít: system_clock steady_clock és high_resolution_clock. Ezeket az órákat különféle módokon használják az idő mérésére.

system_clock a rendszerszintű valós idejű falióra. Ezt a rendszer időbeállításai befolyásolják.
A steady_clock egy monoton növekvő órajel, amelyet nem befolyásolnak a rendszeridő változásai.
A high_resolution_clock a rendszeren elérhető legrövidebb ketygési periódusú óra.



blokkolt számok

időtartamtípusok gyűjteményét is tartalmazza, beleértve az időtartamotamely használható egy időtartam ábrázolására. A rep az ábrázolás típusa (például int vagy long), a Period pedig az időtartam aránya (például nanoszekundum vagy másodperc).
Továbbáidőpont-típusok gyűjteményét nyújtja, beleértve a time_pointamely egy időpont ábrázolására használható. Az óra az óra típusa (például system_clock), az időtartam pedig az időtartam típusa (például másodperc).

A Chrono könyvtár a dátum és az idő kezelésére szolgál. Ezt a könyvtárat úgy tervezték, hogy kezelje azt a tényt, hogy az időzítők és az órák eltérőek lehetnek a különböző rendszerekben, és így idővel a pontosság javulása érdekében. A chrono egyedülálló tulajdonsága, hogy a precíziós-semleges koncepció az időtartam és az időpont (időpont) elválasztásával meghatározott óráktól. A chrono egy fejléc és egy al-névtér neve: A fejléc összes eleme (a common_type specializációk kivételével) nem közvetlenül az std névtér alatt van definiálva (mint a legtöbb szabványos könyvtárban), hanem a std::chrono névtér . A fejlécben szereplő elemek az idővel foglalkoznak. Ez főként három fogalom segítségével történik:

Időtartam

Az időtartam objektum egy időintervallumot fejez ki, például egy perc, két óra vagy tíz milliszekundum. Például a „42 másodperc” egy 1 másodperces időegység 42 jelöléséből álló időtartammal is ábrázolható. 

parancsot a node js-ben
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; } 

Kimenet:

duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.

Óra

Az óra egy kezdőpontból (vagy korszakból) és egy ketyegésből áll. Például egy óra korszaka 1996. február 22-e lehet, és másodpercenként ketyeg. A C++ három óratípust határoz meg:

    system_clock- Ez a rendszer szerinti aktuális idő (normál óra, amit a számítógép eszköztárán látunk). A következőképpen van írva: std::chrono::system_clocksteady_clock- Ez egy monoton óra, amelyet soha nem lehet beállítani. Egyenletes ütemben megy. A következőképpen van írva: std::chrono::steady_clockhigh_resolution_clock- A lehető legrövidebb ketyegési periódust biztosítja. Úgy van írva, hogy-std::chrono::high_resolution_clock

Időpont

A time_point objektum egy időpontot fejez ki az óra korszakához képest. Belsőleg az objektum egy időtartam típusú objektumot tárol, és az Óra típust használja referenciaként a korszakához.  

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"; } 

Kimenet:

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

Fontos megjegyezni, hogy az órák és időtartamok pontossága és pontossága által biztosította rendszertől és a platformtól függően változhat, és mindig érdemes megnézni a platform dokumentációját további információkért.

np jelent

Kvíz létrehozása