std::chrono::duration (tsz. std::chrono::durations)
std::chrono::duration
a C++ chrono
könyvtárának egy időtartamot reprezentáló sablonosztálya. A C++11-től érhető el, és típusbiztos módon kezeli az időintervallumokat (például másodperc, milliszekundum, stb.).
std::chrono::duration<Rep, Period>
Rep
: Az alap típus (pl. int
, long
, double
) – ez tárolja a számot.Period
: A periódus, azaz az időegység – pl. std::ratio<1>
(másodperc), std::milli
(ezredmásodperc).
#include <iostream>
#include <chrono>
int main() {
std::chrono::duration<int> egy_masodperc(1);
std::cout << "Időtartam: " << egy_masodperc.count() << " másodperc\n";
}
#include <chrono>
#include <iostream>
int main() {
std::chrono::duration<int, std::milli> ezred(1000);
std::cout << "Időtartam: " << ezred.count() << " milliszekundum\n";
}
using namespace std::chrono;
seconds // másodperc – duration<int64_t, ratio<1>>
milliseconds // ezredmásodperc – duration<int64_t, milli>
microseconds // mikroszekundum – duration<int64_t, micro>
nanoseconds // nanoszekundum – duration<int64_t, nano>
minutes // perc – duration<int64_t, ratio<60>>
hours // óra – duration<int64_t, ratio<3600>>
using namespace std::chrono;
seconds s1(5);
seconds s2(3);
auto osszeg = s1 + s2; // 8 másodperc
std::cout << osszeg.count(); // Kimenet: 8
using namespace std::chrono;
seconds s(2);
milliseconds ms = std::chrono::duration_cast<milliseconds>(s); // 2000 ms
A
duration_cast
szükséges az eltérő egységek közti átváltáshoz (például másodperc → milliszekundum).
Fogalom | Jelentés |
---|---|
duration
|
Időtartamot reprezentáló osztály |
count()
|
Visszaadja a tárolt számértéket |
duration_cast
|
Átváltás egyik időtartam-típusból a másikba |
std::milli
|
Ezredmásodperces időalap (1/1000) |
std::chrono::*
|
A chrono névtér típusai és segédfüggvényei
|