logo

Chrono i C++

är en C++-header som tillhandahåller en samling typer och funktioner att arbeta med tiden. Det är en del av C++ Standard Template Library (STL) och det ingår i C++11 och senare versioner.

tillhandahåller tre huvudtyper av klockor: system_clock steady_clock och high_resolution_clock. Dessa klockor används för att mäta tid på olika sätt.

system_clock representerar den systemomfattande väggklockan i realtid. Det påverkas av systemets tidsjusteringar.
steady_clock representerar en monotont ökande klocka som inte påverkas av ändringar i systemtiden.
high_resolution_clock är klockan med den kortaste tickperioden som finns tillgänglig i systemet.



hur många miljoner är det i en miljard

ger också en samling av varaktighetstyper inklusive varaktighetsom kan användas för att representera en tidslängd. Rep är representationstypen (som int eller long) och Period är förhållandet mellan varaktigheten (som nanosekunder eller sekunder).
Dessutomtillhandahåller en samling tidpunktstyper inklusive time_pointsom kan användas för att representera en tidpunkt. Klocka är klocktypen (som system_clock) och Duration är varaktighetstypen (som sekunder)

Chrono-biblioteket används för att hantera datum och tid. Detta bibliotek har utformats för att hantera det faktum att timers och klockor kan vara olika på olika system och därmed förbättras med tiden när det gäller precision. Det unika med chrono är att det ger en precisionsneutralt koncept genom att separera varaktighet och tidpunkt (tidpunkt) från specifika klockor. chrono är namnet på en rubrik och även på ett undernamnområde: Alla element i den här rubriken (förutom common_type-specialiseringarna) definieras inte direkt under std-namnutrymmet (som de flesta av standardbiblioteket) utan under std::chrono namnutrymme . Elementen i denna rubrik handlar om tid. Detta görs huvudsakligen med hjälp av tre koncept:

Varaktighet

Ett varaktighetsobjekt uttrycker ett tidsintervall med hjälp av en räkning som en minut två timmar eller tio millisekunder. Till exempel kan "42 sekunder" representeras av en varaktighet som består av 42 tick av en 1-sekunds tidsenhet. 

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

Produktion:

om annat om java
duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.

Klocka

En klocka består av en startpunkt (eller epok) och en tickhastighet. Till exempel kan en klocka ha en epok på den 22 februari 1996 och ticka varje sekund. C++ definierar tre klocktyper:

    system_klocka-Det är den aktuella tiden enligt systemet (vanlig klocka som vi ser i verktygsfältet på datorn). Det är skrivet som std::chrono::system_clockstadig_klocka-Det är en monoton klocka som aldrig kommer att justeras. Den går i jämn takt. Det är skrivet som std::chrono::steady_clockhög_upplösning_klocka– Det ger minsta möjliga tickperiod. Det är skrivet som-std::chrono::high_resolution_clock

Tidpunkt

Ett time_point-objekt uttrycker en tidpunkt i förhållande till en klockas epok. Internt lagrar objektet ett objekt av en varaktighetstyp och använder klockatypen som referens för sin epok.  

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

Produktion:

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

Det är viktigt att notera att precisionen och noggrannheten hos klockorna och varaktigheterna tillhandahålls avkan variera beroende på system och plattform och det är alltid en bra idé att kontrollera dokumentationen för din plattform för mer information.

pyspark

Skapa frågesport