Задача:
необходимо создать функцию(1) для измерения скорости выполнения функции(2) и передать функции(1) функцию(2). Функция(1) должна просто выводить в консоль время работы функции(1).
Функция(1)(данный код работает и показывает некий результат для различных сортировок):
#include <stdio.h>
#include <chrono>
const auto start_time = std::chrono::steady_clock::now();
foo2(array, size);
double result_time = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now() - start_time).count() / 1000000.0;
printf("foo2 duration: %.10lf", result_time);
Функция(2):
void foo2(int array[], int array_size){
...
}
Вопросы:
1. Как вы считаете, корректен ли подобный способ получения продолжительности работы функции?
2. Как лучше передать функции(1) функцию(2)? Имеется множество алгоритмов, и требуется вычислять скорость их работы.