【问题标题】:elapsed time in seconds using Boost使用 Boost 的经过时间(以秒为单位)
【发布时间】:2013-04-06 13:37:27
【问题描述】:

我通常在以下时间播种我的 RNG,通过调用 time.h 获得

#include <iostream>
#include <time.h>

using namespace std;



int main()
{
    cout << static_cast<unsigned int>(time(0)) << endl;
    return 0;
}

Boost 库中是否有与 static_cast&lt;unsigned int&gt;(time(0)) 等效的内容?

【问题讨论】:

    标签: c++ boost


    【解决方案1】:

    您可以使用boost::posix_time 获取时间。请参阅此SO question。例如:

    boost::posix_time::time_duration diff = tick - now;
    diff.total_milliseconds();
    

    如果您可以使用 C++11,您也可以使用 C++11 chrono。例如:

    int elapsed_milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(end-start).count();
    

    通过这两种方法,您可以获取从一天开始的毫秒数,然后将其分配给您的种子。

    【讨论】:

    • 对于我的电脑,结果证明 boostchrono 快得多(大约是 4.20 倍)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    相关资源
    最近更新 更多