logo

Chrono C++:ssa

on C++-otsikko, joka tarjoaa kokoelman tyyppejä ja toimintoja, jotka toimivat ajan kanssa. Se on osa C++ Standard Template Libraryä (STL) ja se sisältyy C++11:een ja uudempiin versioihin.

tarjoaa kolme päätyyppiä kelloja: system_clock steady_clock ja high_resolution_clock. Näitä kelloja käytetään ajan mittaamiseen eri tavoin.

system_clock edustaa järjestelmän laajuista reaaliaikaista seinäkelloa. Siihen vaikuttavat järjestelmän aikasäädöt.
steady_clock edustaa monotonisesti kasvavaa kelloa, johon järjestelmän ajan muutokset eivät vaikuta.
high_resolution_clock on kello, jolla on lyhyin järjestelmässä käytettävissä oleva tikitusjakso.



lausunnon kattavuus

tarjoaa myös kokoelman kestotyyppejä, mukaan lukien kestojota voidaan käyttää edustamaan aikaa. Rep on esitystyyppi (kuten int tai long) ja Period on keston suhde (kuten nanosekuntia tai sekuntia).
Lisäksitarjoaa kokoelman aikapistetyyppejä, mukaan lukien aika_pistejota voidaan käyttää esittämään ajankohtaa. Kello on kellon tyyppi (kuten system_clock) ja Kesto on kestotyyppi (kuten sekuntia).

Chrono-kirjastoa käytetään päivämäärän ja ajan käsittelemiseen. Tämä kirjasto on suunniteltu käsittelemään sitä tosiasiaa, että ajastimet ja kellot voivat olla erilaisia ​​eri järjestelmissä, ja siten parantamaan tarkkuutta ajan myötä. Ainutlaatuinen asia chronossa on, että se tarjoaa a tarkkuusneutraali konsepti erottamalla kesto ja aikapiste (aikapiste) tietyistä kelloista. chrono on otsikon ja myös alinimiavaruuden nimi: Kaikki tämän otsikon elementit (paitsi common_type-erikoisalat) ei ole määritetty suoraan std-nimiavaruuden alle (kuten useimmat standardikirjastot) vaan std::chrono-nimiavaruus . Tämän otsikon elementit käsittelevät aikaa. Tämä tehdään pääasiassa kolmen käsitteen avulla:

Kesto

Kestoobjekti ilmaisee aikajänteen laskennalla, kuten minuutti kaksi tuntia tai kymmenen millisekuntia. Esimerkiksi '42 sekuntia' voitaisiin edustaa kestona, joka koostuu 42 tikkusta 1 sekunnin aikayksikössä. 

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

Lähtö:

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

Kello

java-syöttömerkkijono

Kello koostuu aloituspisteestä (tai aikakaudesta) ja tikitysnopeudesta. Esimerkiksi kellon aikakausi voi olla 22. helmikuuta 1996 ja se tikittää joka sekunti. C++ määrittelee kolme kellotyyppiä:

    system_clock-Se on nykyinen aika järjestelmän mukaan (normaali kello, jonka näemme tietokoneen työkalupalkissa). Se kirjoitetaan muodossa-std::chrono::system_clockvakaa_kello-Se on monotoninen kello, jota ei koskaan säädetä. Se kulkee tasaisesti. Se kirjoitetaan muodossa-std::chrono::steady_clockhigh_resolution_clock- Se tarjoaa pienimmän mahdollisen tikkujakson. Se on kirjoitettu muodossa-std::chrono::high_resolution_clock

Aikapiste

Time_point -objekti ilmaisee ajankohdan suhteessa kellon aikakauteen. Sisäisesti objekti tallentaa kestotyyppisen objektin ja käyttää Kello-tyyppiä viitteenä aikakaudelleen.  

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

Lähtö:

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

On tärkeää huomata, että kellojen ja kestojen tarkkuus ja tarkkuusvoi vaihdella järjestelmästä ja alustasta riippuen, ja on aina hyvä idea tarkistaa alustasi dokumentaatio saadaksesi lisätietoja.

np tarkoittaa

Luo tietokilpailu