logo

C++'da krono

zamanla çalışacak tür ve işlevler koleksiyonu sağlayan bir C++ başlığıdır. C++ Standart Şablon Kitaplığının (STL) bir parçasıdır ve C++11 ve sonraki sürümlerde bulunur.

üç ana saat türü sağlar: sistem_saati sabit_saat ve yüksek_çözünürlük_saati. Bu saatler zamanı çeşitli şekillerde ölçmek için kullanılır.

system_clock, sistem genelindeki gerçek zamanlı duvar saatini temsil eder. Sistemin zaman ayarlarından etkilenir.
steady_clock sistem zamanındaki değişikliklerden etkilenmeyen, monoton olarak artan bir saati temsil eder.
yüksek_çözünürlük_saati, sistemde mevcut olan en kısa tıklama periyoduna sahip saattir.



kaplan ile aslan arasındaki fark

ayrıca süre de dahil olmak üzere süre türlerinin bir koleksiyonunu sağlarbir süreyi temsil etmek için kullanılabilir. Rep temsil türüdür (int veya long gibi) ve Dönem ise sürenin oranıdır (nanosaniye veya saniye gibi).
Ek olaraktime_point dahil olmak üzere zaman noktası türlerinin bir koleksiyonunu sağlarzamandaki bir noktayı temsil etmek için kullanılabilir. Saat, saat türüdür (system_clock gibi) ve Süre, süre türüdür (saniye gibi)

Chrono kütüphanesi tarih ve saatle ilgilenmek için kullanılır. Bu kütüphane, zamanlayıcıların ve saatlerin farklı sistemlerde farklı olabileceği gerçeğini ele almak ve böylece zaman içinde hassasiyet açısından gelişmek için tasarlandı. Chrono'nun benzersiz özelliği, Süreyi ve zaman noktasını (zaman noktası) belirli saatlerden ayırarak hassas-nötr konsept. chrono, bir başlığın ve aynı zamanda bir alt ad alanının adıdır: Bu başlıktaki tüm öğeler (ortak_tip uzmanlıkları hariç) doğrudan std ad alanı altında değil (standart kitaplığın çoğu gibi), ancak std::chrono ad alanı . Bu başlıktaki öğeler zamanla ilgilidir. Bu esas olarak üç kavram aracılığıyla yapılır:

Süre

iş parçacığı senkronizasyonu

Bir süre nesnesi, bir dakika, iki saat veya on milisaniye gibi bir sayım aracılığıyla bir zaman aralığını ifade eder. Örneğin '42 saniye', 1 saniyelik zaman biriminin 42 tıklamasından oluşan bir süre ile temsil edilebilir. 

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; } 

Çıkış:

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

Saat

Bir saat, bir başlangıç ​​noktası (veya çağ) ve bir tıklama oranından oluşur. Örneğin bir saatin 22 Şubat 1996 dönemi olabilir ve her saniye tik tak edebilir. C++ üç saat türünü tanımlar:

    sistem_saati-Sisteme göre geçerli saattir (bilgisayarın araç çubuğunda gördüğümüz normal saat). Astd::chrono::system_clock şeklinde yazılırsabit_saat-Asla ayarlanamayacak monoton bir saattir. Aynı hızla çalışır. Astd::chrono::steady_clock şeklinde yazılıryüksek_çözünürlük_saat- Mümkün olan en küçük tıklama süresini sağlar. -std::chrono::high_Definition_clock olarak yazılmıştır.

Zaman noktası

Time_point nesnesi, saatin çağına göre zamandaki bir noktayı ifade eder. Dahili olarak nesne, süre tipindeki bir nesneyi saklar ve kendi dönemi için referans olarak Clock tipini kullanır.  

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"; } 

Çıkış:

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

tarafından sağlanan saatlerin ve sürelerin kesinliği ve doğruluğunun dikkate alınması önemlidir.sisteme ve platforma bağlı olarak değişiklik gösterebilir ve daha fazla bilgi için platformunuzun belgelerini kontrol etmek her zaman iyi bir fikirdir.

deterministik sonlu otomatlar

Test Oluştur