logo

Цхроно у Ц++

је Ц++ заглавље које пружа колекцију типова и функција за рад са временом. То је део Ц++ стандардне библиотеке шаблона (СТЛ) и укључен је у Ц++11 и новије верзије.

пружа три главна типа сатова: системски_сат стабилан_сат и часовник високе_резолуције. Ови сатови се користе за мерење времена на различите начине.

систем_цлоцк представља зидни сат у реалном времену за читав систем. На то утичу подешавања времена система.
стеади_цлоцк представља монотоно растући сат на који не утичу промене системског времена.
хигх_ресолутион_цлоцк је сат са најкраћим периодом откуцаја који је доступан на систему.



миливецрицкет алтернатива

такође пружа колекцију типова трајања укључујући трајањекоји се може користити за представљање трајања времена. Реп је тип репрезентације (као што је инт или лонг), а Период је однос трајања (као што су наносекунде или секунде).
Додатнопружа колекцију типова временске тачке укључујући тиме_поинткоји се може користити за представљање тачке у времену. Сат је тип сата (као што је системски_сат), а трајање је тип трајања (као што су секунде)

Хроно библиотека се користи за рад са датумом и временом. Ова библиотека је дизајнирана да се бави чињеницом да тајмери ​​и сатови могу бити различити на различитим системима и да се временом побољша у смислу прецизности. Јединствена ствар код Цхроно-а је то што пружа а прецизно неутралан концепт одвајањем трајања и тачке времена (временске тачке) од специфичних часовника. цхроно је име заглавља, а такође и под-простора имена: Сви елементи у овом заглављу (осим специјализација цоммон_типе) нису дефинисани директно у стд именском простору (као већина стандардне библиотеке) већ под стд::цхроно именски простор . Елементи у овом заглављу се баве временом. Ово се углавном ради помоћу три концепта:

Трајање

Објекат трајања изражава временски распон помоћу бројања као што је минут два сата или десет милисекунди. На пример, '42 секунде' може бити представљено трајањем које се састоји од 42 тикета јединице времена од 1 секунде. 

CPP
// C++ program to illustrate the utility  // function duration::count #include     #include   int main () {  using namespace std::chrono;  // std::chrono::milliseconds is an   // instantiation of std::chrono::duration:- 1 second  milliseconds mil(1000);     mil = mil*60;    std::cout << "duration (in periods): ";  std::cout << mil.count() << " milliseconds.n";    std::cout << "duration (in seconds): ";  std::cout << (mil.count() * milliseconds::period::num /   milliseconds::period::den);  std::cout << " seconds.n";  return 0; } 

Излаз:

duration (in periods): 60000 milliseconds. duration (in seconds): 60 seconds.

Сат

тренутни датум у Јави

Сат се састоји од почетне тачке (или епохе) и стопе откуцаја. На пример, сат може имати епоху од 22. фебруара 1996. и откуцавати сваку секунду. Ц++ дефинише три типа сата:

    систем_цлоцк-То је тренутно време по систему (обичан сат који видимо на траци са алаткама рачунара). Пише се као- стд::цхроно::систем_цлоцкстеади_цлоцк-То је монотони сат који се никада неће подесити. Ради уједначеном брзином. Пише се као- стд::цхроно::стеади_цлоцкхигх_ресолутион_цлоцк- Обезбеђује најмањи могући период тикова. Пише се као-стд::цхроно::хигх_ресолутион_цлоцк

Временска тачка

Објекат тиме_поинт изражава тачку у времену у односу на епоху сата. Интерно објекат складишти објекат типа трајања и користи тип Сат као референцу за своју епоху.  

CPP
// C++ program to illustrate time point // and system clock functions #include    #include  #include  // Function to calculate // Fibonacci series long fibonacci(unsigned n) {  if (n < 2) return n;  return fibonacci(n-1) + fibonacci(n-2); } int main() {  // Using time point and system_clock  std::chrono::time_point<std::chrono::system_clock> start end;  start = std::chrono::system_clock::now();  std::cout << "f(42) = " << fibonacci(42) << 'n';  end = std::chrono::system_clock::now();  std::chrono::duration<double> elapsed_seconds = end - start;  std::time_t end_time = std::chrono::system_clock::to_time_t(end);  std::cout << "finished computation at " << std::ctime(&end_time)  << "elapsed time: " << elapsed_seconds.count() << "sn"; } 

Излаз:

f(42) = 267914296 finished computation at Wed Jan 4 05:13:48 2017 elapsed time: 2.14538s

Важно је напоменути да прецизност и тачност сатова и трајања које обезбеђујеможе варирати у зависности од система и платформе и увек је добра идеја да проверите документацију ваше платформе за више информација.

10 мл у унце

Креирај квиз