原
總結ratio
std::ratio定義在檔案中,提供了編譯期的比例計算功能。為std::chrono::duration提供基礎服務。
std::ratio是乙個模板類,關鍵**摘錄如下(格式有調整):
template
struct ratio
; 第乙個引數_nx
代表了分子,第二個引數_dx
代表了分母。
num
是計算後的分子,den
是計算後的分母。在duration轉換的時候會用到這兩個值。
注:這裡的計算是指約分,可以看到傳入的分子和分母都除以了最大公約數。
num
是numerator
的縮寫,表示分子。
den
是denominator
的縮寫,表示分母。
為了方便**的書寫,標準庫提供了如下定義:
type
definition
yocto
std::ratio<1, 1000000000000000000000000>, if std::intmax_t can represent the denominator
zepto
std::ratio<1, 1000000000000000000000>, if std::intmax_t can represent the denominator
atto
std::ratio<1, 1000000000000000000>
femto
std::ratio<1, 1000000000000000>
pico
std::ratio<1, 1000000000000>
nano
std::ratio<1, 1000000000>
micro
std::ratio<1, 1000000>
milli
std::ratio<1, 1000>
centi
std::ratio<1, 100>
deci
std::ratio<1, 10>
deca
std::ratio<10, 1>
hecto
std::ratio<100, 1>
kilo
std::ratio<1000, 1>
mega
std::ratio<1000000, 1>
giga
std::ratio<1000000000, 1>
tera
std::ratio<1000000000000, 1>
peta
std::ratio<1000000000000000, 1>
exastd::ratio<1000000000000000000, 1>
zetta
std::ratio<1000000000000000000000, 1>, if std::intmax_t can represent the numerator
yotta
std::ratio<1000000000000000000000000, 1>, if std::intmax_t can represent the numerator
如果想表示1/5,那麼可以這樣寫std::ratio<1, 5>
。
回想我們在學習std::chrono::duration中遇到到的milli
的定義:
typedef ratio<1, 1000> milli;
,表示一千分之一,因為約定了基本計算單位是秒,所以milli
表示一千分之一秒。
#include
#include
typedef
std::chrono::duration > three_seconds;
typedef
std::chrono::duration > one_tenth_seconds;
intmain()
原 C 新標準之std ratio
原 總結ratio std ratio定義在檔案中,提供了編譯期的比例計算功能。為std chrono duration提供基礎服務。std ratio是乙個模板類,關鍵 摘錄如下 格式有調整 template struct ratio 第乙個引數 nx代表了分子,第二個引數 dx代表了分母。num...
C 新標準之std ratio
概覽 std ratio定義在檔案中,提供了編譯期的比例計算功能。為std chrono duration提供基礎服務。類定義std ratio是乙個模板類,關鍵 摘錄如下 格式有調整 template 1 struct ratio 第乙個引數 nx代表了分子,第二個引數 dx代表了分母。num是計...
原 C 新標準之std thread
原 總結c 11 thread 更多參考資料 從c 11開始提供了執行緒的支援,終於可以方便的編寫跨平台的執行緒 了。除了std thread類,還提供了許多其它便利同步的機制,本篇總結是c 11學習筆記系列的首篇總結。std thread定義在中,提供了方便的建立執行緒的功能。class thre...