原 C 新標準之std ratio

2022-03-26 17:34:46 字數 2142 閱讀 2508

總結ratio

std::ratio定義在檔案中,提供了編譯期的比例計算功能。為std::chrono::duration提供基礎服務。

std::ratio是乙個模板類,關鍵**摘錄如下(格式有調整):

template

struct ratio 

; 第乙個引數_nx代表了分子,第二個引數_dx代表了分母。

num是計算後的分子,den是計算後的分母。在duration轉換的時候會用到這兩個值。

注:這裡的計算是指約分,可以看到傳入的分子和分母都除以了最大公約數。

numnumerator的縮寫,表示分子。

dendenominator的縮寫,表示分母。

為了方便**的書寫,標準庫提供了如下定義:

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...