diff --git a/templates/_folder_Lectures/Lecture 14 - handout/Stopwatch.cpp b/templates/_folder_Lectures/Lecture 14 - handout/Stopwatch.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a4be1c713aee747fd38ae5ad501e6a18470ac223 --- /dev/null +++ b/templates/_folder_Lectures/Lecture 14 - handout/Stopwatch.cpp @@ -0,0 +1,12 @@ +#include "Stopwatch.h" + +void Stopwatch::start() { + startTime = std::chrono::steady_clock::now(); +} + +double Stopwatch::stop() { + std::chrono::time_point endTime = std::chrono::steady_clock::now(); + long durationInMicroseconds = std::chrono::duration_cast<std::chrono::microseconds>(endTime - startTime).count(); + double durationInSeconds = double(durationInMicroseconds)/1000000.0; + return durationInSeconds; +} \ No newline at end of file diff --git a/templates/_folder_Lectures/Lecture 14 - handout/Stopwatch.h b/templates/_folder_Lectures/Lecture 14 - handout/Stopwatch.h new file mode 100644 index 0000000000000000000000000000000000000000..307f3835665aae16d34019c05d3012e877da6200 --- /dev/null +++ b/templates/_folder_Lectures/Lecture 14 - handout/Stopwatch.h @@ -0,0 +1,20 @@ +#pragma once +#include <iostream> +#include <chrono> + +// This class abstracts some (somewhat) nasty code that is +// definitely outside the scope of this course. +// Its main purpose is to return the amount of time +// taken by the program in main.cpp + +// Calling start() starts the stopwatch +// Calling stop() stops it and returns the amount of time +// that has elapsed since start() was called in seconds + +class Stopwatch { + std::chrono::time_point<std::chrono::steady_clock> startTime; + +public: + void start(); + double stop(); +}; \ No newline at end of file