C++统计函数运行时间的函数怎么用?
时间: 2023-08-12 22:09:10 浏览: 79
在C++中,你可以使用`chrono`头文件来统计函数的运行时间。 具体来说,你可以在函数开始前记录当前时间,然后在函数结束后再次记录当前时间,两者相减即可得到函数运行的时间。下面是一个示例代码:
```c++
#include <iostream>
#include <chrono>
using namespace std;
using namespace std::chrono;
template<typename Func>
auto calculate_time(Func func)
{
return [=](auto ... args) -> decltype(func(args...))
{
auto start_time = high_resolution_clock::now();
auto result = func(args...);
auto end_time = high_resolution_clock::now();
auto time = duration_cast<microseconds>(end_time - start_time).count();
cout << "Function took " << time << " microseconds to run." << endl;
return result;
};
}
```
这里我们定义了一个名为`calculate_time`的函数模板,它可以将任何函数进行包装,并在函数执行完毕后输出该函数的运行时间。你只需要将目标函数作为参数传递给`calculate_time`即可。例如:
```c++
int my_func(int a, int b)
{
// do something
}
auto wrapped_func = calculate_time(my_func);
wrapped_func(1, 2);
```
这样,每次调用`wrapped_func`时,都会输出它的运行时间。注意,`calculate_time`返回的是一个闭包,因此需要将其赋值给一个变量,然后调用该变量来执行包装后的函数。
阅读全文