2015-07-27 12 views
7

Jak mogę uzyskać (używając biblioteki std :: chrono) różnicę między dwoma punktami w czasie w milisekundach?Chrono - Różnica między dwoma punktami w czasie w milisekundach?

mogę zrobić za pomocą tego:

std::chrono::time_point<std::chrono::system_clock> now = std::chrono::system_clock::now(); 

std::chrono::time_point<std::chrono::system_clock> foo = now + std::chrono::milliseconds(100); 

std::chrono::duration<float> difference = foo - now; 

const int milliseconds = difference.count() * 1000; 

Jak mogę dostać ten czas w milisekundach, więc mogę wykorzystać czas jako unsigned int, a nie pływaka a następnie pomnożyć przez 1000?

+3

Zajęło mi pięć sekund, aby google to: 'chrono :: duration_cast (end_time - start_time) .count()' – zoska

Odpowiedz

13

std::chrono::duration ma dwa parametry szablonu, drugie dokładnie jednostkę miary. Możesz wywołać std::chrono::duration_cast, aby przesyłać z jednego typu czasu trwania do drugiego. Istnieje także predefiniowany typ czasu trwania dla milisekund: std::chrono::milliseconds. Komponowanie to razem:

auto milliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(foo - now); 

Aby gen rzeczywista liczba milisekund, należy duration::count:

auto ms = milliseconds.count(); 

Jej typ zwracany jest duration::rep, które dla standardowych typów trwania jak std::chrono::milliseconds jest podpisane całkowitą nieokreślonej wielkości.

2
chrono::duration_cast<chrono::milliseconds>(end_time - start_time).count() 
Powiązane problemy