- 1 名前:デフォルトの名無しさん [04/09/14 07:16:41]
- ここでは他のC++スレよりもより一層と高いレベルでの情報交換・体験談などを行うスレです。
我こそはC++プロフェッショナルだという方の書き込みをお待ちしております。
- 442 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 00:38:36 ]
- 最近色々なブログでやってる
最小なんとか点とかメモとかってこんな感じか? template <class T> class normal { protected: int call_me(int i) const { return static_cast<T const&>(*this)(i); } }; template <class T> class memo { protected: int call_me(int i) const { std::map<int, int>::const_iterator ci = memo_.find(i); return ci == memo_.end() ? memo_[i] = static_cast<T const&>(*this)(i) : ci->second ; } private: mutable std::map<int, int> memo_; };
- 443 名前:デフォルトの名無しさん mailto:sage [2005/09/03(土) 00:39:08 ]
- template <template <class> class Fix>
class fib : Fix<fib> { public: int operator () (int i) const { return i <= 1 ? 1 : call_me(i-2) + call_me(i-1); } }; int main() { fib<normal>()(20); fib<memo>()(20); }
|

|