2015-01-09 27 views
6

<chrono> kütüphanesini öğreniyorum ve std::chrono::duration sınıfına göre, saniyelerle ilişkilendirmek için herhangi bir sebep var mı? saniye üzerinde değil dakikanın saatlerine baz süresine herhangi bir sebep var mıdır Örneğin saniye saklamak için bir değişkenstd :: chrono :: süresi saniye cinsinden

chrono::duration<int> two_seconds(2); 

olacağını ve diğer tüm süre canlandırmanız

chrono::duration<int, ratio<60>> two_minutes(2); 
chrono::duration<int, ratio<1, 1000>> two_milliseconds(2); 
chrono::duration<int, ratio<60 * 60 * 24>> two_days(2); 

gibi, saniye ile ilişkilendirilmesi gerektirir , vb.?

+5

Saniye zaman süresi değerleri için fiziksel bir temel vardır. Sebebi bu olabilir mi? –

+4

Başka bir birim olsaydı, ilgili soruyu sordunuz mu? –

+1

* Bir şey * temel alınmalıdır, çünkü bir integral değer ve bir oran (integrallerin) olarak depolanır. Temel birim olarak başka ne önerirsiniz? Saniyeler, zaman için [SI birimi] (http://en.wikipedia.org/wiki/International_System_of_Units#Base_units) olduğu gibi en doğal olanıdır. – leemes

cevap

31

Saniyeler, hem SI sisteminde hem de bir bütün olarak bilimdeki temel zaman birimi olduğu için seçilmiştir.
Amerikalılar bile saniyeler kullanırlar ve microfortnights gibi bir şey kullanmazlar.

bu temel zaman aralığı süresi sınıfına

Eğer oranları için typedef s sağlayabilir gibi, olduğu için başka bir şablon parametresi değil neden

ve bazı standart dahildir. Daha fazlası için

#include <chrono> 

std::chrono::duration<int, minutes> two_minutes(2);   // Standard 
std::chrono::duration<int, milliseconds> two_milliseconds(2); // Standard 

, onlar eklemek için önemsiz olduğunu:

typedef std::ratio<60 * 60 * 24> days; 
typedef std::ratio<756, 625> microfortnights; 

std::chrono::duration<int, days> two_days(2); 
std::chrono::duration<int, microfortnights> two_weeks(1000000); 
+35

"Hatta Amerikalılar saniyeler kullanıyor ve mikrokontinans gibi bir şey kullanmıyorlar." Bunun için +1 – DarkWanderer

+0

Standart zaten "std :: chrono :: miliseconds" gibi şeyler içerir. [Bu sayfa] 'da "Yardım Türleri" etiketli bölüme bakın (http://en.cppreference.com/w/cpp/chrono/duration). – Steve

+0

@Steve Oops, OP'nin sözünü kontrol etmeliydim ve almamalıydım. – molbdnilo

İlgili konular