6 #ifndef CACHED_LAZY_LIST_HPP 7 #define CACHED_LAZY_LIST_HPP 1 25 ll_(ll), cached_values_(ll.
size(),pair<bool,T>(false,T())) {}
42 if(!cached_values_[i].first)
43 cached_values_[i] = pair<bool,T>(
true,ll_[i]);
44 return cached_values_[i].second;
50 cached_values_.resize(ll_.size());
51 for(
size_t i=0;i<cached_values_.size();++i)
52 cached_values_[i].first =
false;
60 mutable vector<pair<bool,T> > cached_values_;
63 #endif // CACHED_LAZY_LIST_HPP
virtual ~CachedLazyList(void)
Class destructor.
void reset(void) const
Marks all terms for recalculation.
const T & operator[](size_t i) const
Element access function.
Ordered list whose terms are evaluated lazily.
size_t size(void) const
Returns the size of the list.
CachedLazyList(const LazyList< T > &ll)
Class constructor.