比较两个timespec值以查看哪个首先发生的最佳方法是什么?
以下内容有问题吗?
bool BThenA(timespec a, timespec b) {
//Returns true if b happened first -- b will be "lower".
if (a.tv_sec == b.tv_sec)
return a.tv_nsec > b.tv_nsec;
else
return a.tv_sec > b.tv_sec;
}
最佳答案
可以采用的另一种方法是为operator <()
定义一个全局timespec
。然后,您就可以比较一次是否发生在另一时间。
bool operator <(const timespec& lhs, const timespec& rhs)
{
if (lhs.tv_sec == rhs.tv_sec)
return lhs.tv_nsec < rhs.tv_nsec;
else
return lhs.tv_sec < rhs.tv_sec;
}
然后在您的代码中您可以拥有
timespec start, end;
//get start and end populated
if (start < end)
cout << "start is smaller";