Chrono - Der Unterschied zwischen zwei Punkten in der Zeit in Millisekunden?
Wie kann ich (mit der std::chrono-Bibliothek) die den Unterschied zwischen zwei Punkten in der Zeit in Millisekunden?
Ich tun könnte, dass mit dieser:
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;
Wie kann ich diese Zeit in Millisekunden, so dass ich verwenden können, die Dauer als unsigned int und kein float und multiplizieren Sie mit 1000?
- Hat mich fünf Sekunden, um google diese :
chrono::duration_cast<chrono::milliseconds>(end_time - start_time).count()
- es dauerte 2 Sekunden. google brachte mich hier auf Ihre Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
std::chrono::duration
hat zwei template-Parameter, der zweite ist genau die Maßeinheit. Sie rufenstd::chrono::duration_cast
zum cast von einem Dauer-Typ zu einem anderen. Außerdem gibt es eine vordefinierte Dauer geben Sie für Millisekunden:std::chrono::milliseconds
. Schreiben zusammen:Wird die tatsächliche Anzahl der Millisekunden, verwenden Sie
Dauer::count
:Seiner Rückkehr geben wird
duration::rep
, die für die standard-Dauer-Typen wiestd::chrono::milliseconds
ist eine Ganzzahl von unbekannter Größe.http://www.cplusplus.com/reference/chrono/duration_cast/
Ich hatte Probleme mit dem Dauer-Druck mit Buchstaben wie e-09. Hier ist, wie ich es behoben:
Und ich bekomme jetzt die gewünschten Ergebnisse: