所以我需要做一些精确计时,并努力使用tv_sec和tv_usec。现在我,超级凌乱,有一个我自己的家庭卷Tuple类的矢量,持有秒和微秒。
这里的问题是......如果我想说...在我的向量中获取最早的条目,我必须对元组中的值进行超毛和粗略的比较。
我真的想将tv_sec和tv_usec组合成一个值来存储。这将使比较变得非常容易。
但是如何安全地做到这一点?例如,这种尝试是否会在某些价值观中爆炸?
gettimeofday(&tv, NULL);
time_t secs = tv.tv_sec;
time_t msecs = tv.tv_usec;
double the_answer = tv_sec + (1.0/1000000) * tv_usec; //ehhhh? Maybe?
我把这个问题归结为 - 如果我使用它会溢出/行为怪异/毁了我:
double the_answer = tv_sec + (1.0/1000000) * tv_usec; //ehhhh? Maybe?
答案 0 :(得分:0)
如果您在上一个千禧年陷入困境,请使用std::chrono
或boost::chrono
。该标准给出了每个单元需要多少位的要求,并且API 真的很好。
所需位数(包括符号位)为:
纳秒,这些将持续到2262年。