2013-04-14 59 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倍)** –