Code: Select all
template
class Store {
public:
using allocator_type = Allocator;
virtual ~Store() = default;
virtual void add(int index) = 0;
virtual void add(int index, uint64_t count) = 0;
virtual void add(const Bin& bin) = 0;
virtual Store* copy() const = 0;
virtual void clear() = 0;
virtual bool is_empty() const = 0;
virtual int get_max_index() const = 0;
virtual int get_min_index() const = 0;
virtual uint64_t get_total_count() const = 0;
virtual void merge(const Store& other) = 0;
// Iterators
using const_iterator = ???;
virtual const_iterator begin() const = 0;
virtual const_iterator end() const = 0;
using const_reverse_iterator = ???;
virtual const_reverse_iterator rbegin() const = 0;
virtual const_reverse_iterator rend() const = 0;
};