logo

Chrono в C++

е C++ хедър, който предоставя колекция от типове и функции за работа с времето. Той е част от C++ Standard Template Library (STL) и е включен в C++11 и по-нови версии.

предоставя три основни типа часовници: system_clock steady_clock и high_resolution_clock. Тези часовници се използват за измерване на времето по различни начини.

system_clock представлява стенен часовник в реално време за цялата система. Влияе се от корекциите на времето на системата.
steady_clock представлява монотонно нарастващ часовник, който не се влияе от промени в системното време.
high_resolution_clock е часовникът с най-краткия наличен в системата тик период.



ред на случаен принцип в sql

също така предоставя колекция от типове продължителност, включително продължителносткоито могат да се използват за представяне на продължителност от време. Rep е типът на представяне (като int или long), а Period е съотношението на продължителността (като наносекунди или секунди).
Допълнителнопредоставя колекция от типове времеви точки, включително time_pointкоито могат да се използват за представяне на момент от време. Часовникът е тип часовник (като system_clock) и Duration е тип продължителност (като секунди)

Библиотеката Chrono се използва за работа с дата и час. Тази библиотека е предназначена да се справи с факта, че таймерите и часовниците може да са различни в различните системи и по този начин да се подобрява с течение на времето по отношение на прецизността. Уникалното при хроно е, че осигурява a прецизно неутрална концепция чрез отделяне на продължителността и точката от време (времева точка) от конкретни часовници. chrono е името на заглавка, а също и на подпространство от имена: Всички елементи в тази заглавка (с изключение на специализациите common_type) не са дефинирани директно в пространството от имена std (като повечето от стандартната библиотека), а под std::chrono пространство от имена . Елементите в това заглавие се занимават с времето. Това се прави главно с помощта на три концепции:

Продължителност

javafx на eclipse

Обект на продължителност изразява времеви интервал чрез броене като минута, два часа или десет милисекунди. Например „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 г. и да тиктака всяка секунда. C++ дефинира три типа часовник:

    системен_часовник-Това е текущото време според системата (обикновен часовник, който виждаме в лентата с инструменти на компютъра). Написано е като- std::chrono::system_clockпостоянен_часовник-Това е монотонен часовник, който никога няма да бъде коригиран. Работи с еднаква скорост. Написано е като- std::chrono::steady_clockчасовник с висока_резолюция- Осигурява възможно най-малкия тик период. Написано е като-std::chrono::high_resolution_clock

Времева точка

Обект time_point изразява момент във времето спрямо епохата на часовника. Вътрешно обектът съхранява обект от тип продължителност и използва типа Часовник като референция за своята епоха.  

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

Важно е да се отбележи, че прецизността и точността на часовниците и продължителността, предоставени отможе да варира в зависимост от системата и платформата и винаги е добра идея да проверите документацията на вашата платформа за повече информация.

java списъчно поле

Създаване на тест