在《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的下乙個排列,...