任何想法如何爲模板做到這一點?謝謝使用模板實現組合功能
例如,Combine(<list containing 6,3,1,9,7>, std::plus<int>())
應計算((((6+3)+1)+9)+7)
。
Combine(const Container& c, Function fn) throw (NotEnoughElements)
{
your code goes here
}
任何想法如何爲模板做到這一點?謝謝使用模板實現組合功能
例如,Combine(<list containing 6,3,1,9,7>, std::plus<int>())
應計算((((6+3)+1)+9)+7)
。
Combine(const Container& c, Function fn) throw (NotEnoughElements)
{
your code goes here
}
return
std::accumulate
(c.begin()+1, c.end(), *(c.begin()), fn);
(錯誤處理留作練習OP和讀者。)
謝謝!我們如何處理溢出(比如大數)和重載(比如char類型)? sry我沒有如此經驗模板 – user302792 2010-03-26 19:19:35
@ gkid123:'std :: plus'不能處理溢出。你需要編寫自己的安全「加號」結構。重載是自動的。 – kennytm 2010-03-26 19:28:53
這是功課? – fbrereto 2010-03-26 19:10:08