C++ Library - <chrono>



The <chrono> library in C++ provides a set of tools for handling time and date functionality. It is designed to handle durations, time points, and clocks, making it useful for time-based operations, such as measuring the time taken by a function or scheduling events. It consists of three main components that are listed below:

  • Duration − It represents the time difference between between two points in time and measured in different time units like hours, minutes and seconds.
  • Time Point − It represents a specific point in time, measured from a system-specific epoch. It is created by combining a clock and a duration.
  • Clock − It helps in getting the current time or time points. The library offers three types of clocks; they are system_clock, steady_clock and high_resolution_clock.

The <chrono> library helps in eliminating the risk of performing manual time calculations using the integers or floating-point numbers. The commonly used C++ <chrono> copying functions are listed below along with their description.

Including <chrono> Header

To include the <chrono> header in your C++ program, you can use the following syntax.

#include <chrono>

Functions of <chrono> Header

Below is list of all functions from <chrono> header.

Sr.No. Functions & Description
1 operator=

It assigns the contents.

2 count

It returns the count of ticks.

3 zero

It return the special duration value zero.

4 min

It return the special duration value min.

5 max

It return the special duration value max.

6 operator+

It implements a unary +.

7 operator-

It implements a unary -.

Non-member function

Sr.No. Functions & Description
1 operator==

It compares two durations.

2 operator*

It compares two durations.

Measuring Execution Time

In the following example, we are going to use the std::chrono::high_resolution_clock to measure the excurion time of the code.

#include <iostream>
#include <chrono>
#include <thread>
int main() {
   auto x = std::chrono::high_resolution_clock::now();
   std::this_thread::sleep_for(std::chrono::seconds(3));
   auto y = std::chrono::high_resolution_clock::now();
   std::chrono::duration < double > duration = y - x;
   std::cout << "Result : " << duration.count() << " seconds\n";
   return 0;
}

Output

Output of the above code is as follows −

Result : 3.00008 seconds

Using Durations

Let's look at the following example, where we are going to create and manipulate durations using std::chrono::duration.

#include <iostream>
#include <chrono>
int main() {
   std::chrono::duration < int > a(11);
   std::chrono::duration < int, std::ratio < 60 >> b(22);
   auto x = a + b;
   std::cout << "Result : " << x.count() << " seconds\n";
   return 0;
}

Output

Following is the output of the above code −

Result : 1331 seconds
Advertisements
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy