7 std::size_t size()
const
9 return isExtracted ? v.size() : m.size();
12 T& operator[](std::size_t idx)
15 m.push_back({idx, 0});
16 return m.back().second;
25 std::vector<T>& extract()
const
30 v.assign(m.size(), 0.);
31 for (
auto [index, coeff]: m)
41 mutable bool isExtracted =
false;
42 mutable std::vector<std::pair<int, T>> m;
43 mutable std::vector<T> v;