2013-04-14 35 views
1

我通常由种子接下来的时间我的RNG,通过调用获得time.h使用Boost

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

using namespace std; 



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

是否有一个相当于static_cast<unsigned int>(time(0))于Boost库经过在几秒钟的时间?

回答

2

您可以使用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(); 

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

+0

对于我的电脑,事实证明**提升**比**计时**相当快(约4.20倍)** –