STL中對Pow函式的實現

2021-08-29 20:17:12 字數 499 閱讀 1165

在《stl原始碼剖析》中看到了pow函式在stl中的實現,感覺程式寫的非常巧妙。列出原始碼

template inline t identity_element(plus)

template inline t identity_element(multiplies)

template inline t power_this(t x, integer n)

template t power_this(t x, integer n, monoidoperation op)

t result = x;

n >>= 1;

while (n != 0)

return result;

}}

identity_element(op)為取「證同元素」。所謂「運算op的證同元素」,意思是數值a若與該元素做op運算,會得到a自己。加法的證同元素為0,因為任何元素加上0仍為自己。乘法的證同元素為1,因為任何元素乘以1仍為自己。

pow 函式自實現

題目 實現函式double power double base,int exponent 求base的exponent次方。不得使用庫函式同時不需要考慮大數問題。其實這道題就是要實現pow這個庫函式。你可不要自以為這道題目簡單,直接給出乙個for迴圈了事。像下面這樣 double power dou...

STL中 permutation函式的實現

stl庫中有乙個求全排列中當前排列的上乙個或下乙個排列的函式,permutation函式。其中next permutation 函式用於求下乙個排列 prev permutation 函式用於求上乙個排列。求12345的下乙個排列,把最後兩位4和5交換,為12354 如果是求13245的下乙個排列,...

STL中 permutation函式的實現

stl庫中有乙個求全排列中當前排列的上乙個或下乙個排列的函式,permutation函式。其中next permutation 函式用於求下乙個排列 prev permutation 函式用於求上乙個排列。求12345的下乙個排列,把最後兩位4和5交換,為12354 如果是求13245的下乙個排列,...