我不确定这是不是真的,但在我的代码中,我打印的是一个名为currentTime的变量的值,它记录了自应用程序运行以来的秒数。 currentTime变量记录为 time(NULL) - epocTime 其中epocTime在代码开始时设置为time(NULL)。 即使currentTime是double类型,它在我的应用程序运行时打印出1.0000,2.000000,3.0000等等。但是它永远不会有非整数值。我是否可以更改记录时间的方式,以便记录毫秒数,例如是否有一个参数我可以给出time()方法来记录毫秒。
答案 0 :(得分:1)
time()
几乎总是会返回一个包含自1970年1月1日以来的秒数的整数类型。你可以用time()
本身来改变它。
相反,您应该查看std::chrono::steady_clock
:
#include <chrono>
#include <thread>
#include <iostream>
int main() {
auto start = std::chrono::steady_clock::now();
// Some work
std::this_thread::sleep_for(std::chrono::seconds(1));
auto end = std::chrono::steady_clock::now();
auto elapsed = end - start;
std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(elapsed).count() << " milliseconds\n";
}