我试图计算循环中函数执行时间的总和,但出了点问题:
#include <boost/chrono.hpp>
#include <iostream>
boost::chrono::milliseconds sumGlobal;
int main() {
boost::chrono::high_resolution_clock::time_point t1 ;
boost::chrono::high_resolution_clock::time_point t2 ;
for (i=0;i<10;i++)
{
t1 = boost::chrono::high_resolution_clock::now();
f(); //to waste time
t2 = boost::chrono::high_resolution_clock::now();
sumGlobal += (boost::chrono::duration_cast<boost::chrono::milliseconds>(t2-t1)).sumGlobal;
}
std::cout << sumGlobal << "\n";
}
错误是:
error: 'struct boost::chrono::duration<long int, boost::ratio<1l, 1000l> >' has no member named 'sumGlobal'
有什么解决办法吗?我认为分配给 sumGlobal
的类型应该更改。
最佳答案
boost::chrono::milliseconds
不会返回带有 sumGlobal
数据成员的内容。摆脱它。
sumGlobal += (boost::chrono::duration_cast<boost::chrono::milliseconds>(t2-t1));
关于c++ - 使用 boost::chrono 计算执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30909811/