Class AdaptingIntegerArray
Defined in File circular_buffer.h
Class Documentation
-
class AdaptingIntegerArray
An integer array that automatically expands its memory consumption (via copy/allocation) when reaching limits. This assumes counts remain low, to lower memory overhead.
This class is NOT thread-safe. It is expected to be behind a synchronized incrementer.
Instances start by attempting to store one-byte per-cell in the integer array. As values grow, this will automatically instantiate the next-size integer array (uint8_t -> uint16_t -> uint32_t -> uint64_t) and copy over values into the larger array. This class expects most usage to remain within the uint8_t boundary (e.g. cell values < 256).
Public Functions
-
inline explicit AdaptingIntegerArray(size_t size)
-
AdaptingIntegerArray(const AdaptingIntegerArray &other) = default
-
AdaptingIntegerArray(AdaptingIntegerArray &&other) = default
-
AdaptingIntegerArray &operator=(const AdaptingIntegerArray &other) = default
-
AdaptingIntegerArray &operator=(AdaptingIntegerArray &&other) = default
-
void Increment(size_t index, uint64_t count)
Increments the value at the specified index by the given count in the array.
- Parameters:
index – The index of the value to increment.
count – The count by which to increment the value.
-
uint64_t Get(size_t index) const
Returns the value at the specified index from the array.
- Parameters:
index – The index of the value to retrieve.
- Returns:
The value at the specified index.
-
size_t Size() const
Returns the size of the array.
- Returns:
The size of the array.
-
void Clear()
Clears the array, resetting all values to zero.
-
inline explicit AdaptingIntegerArray(size_t size)