在Matlab中:
tic
do something ...
toc
我尝试拥有此功能:
#define tic double tic_t = clock();
#define toc std::cout << (clock() - tic_t)/CLOCKS_PER_SEC \
<< " seconds" << std::endl;
现在我可以用 C++ 来做到这一点:
tic
doSomething();
toc
问题是我无法在函数内多次调用它,因为 tic_t 将被定义多次。
我想做这样的事情:
tic
doSomething1();
toc
tic
doSomething2();
toc
我会将其实现为堆栈。然后,你可以递归,多次调用它,做任何你想做的事,它不会中断,只要你调用toc()
每次之后tic()
。作为奖励,您不必求助于使用宏:
#include <iostream>
#include <stack>
#include <ctime>
std::stack<clock_t> tictoc_stack;
void tic() {
tictoc_stack.push(clock());
}
void toc() {
std::cout << "Time elapsed: "
<< ((double)(clock() - tictoc_stack.top())) / CLOCKS_PER_SEC
<< std::endl;
tictoc_stack.pop();
}
int main(int argc, char *argv[]) {
tic();
doSomething();
toc();
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)