circular_buffer
circular_buffer copied to clipboard
resize is slow
Hello,
Would it be possible to improve complexity of circular_buffer<T>::resize(new_size, item)
in the case where T
is scalar ?
Currently, complexity is always linear.
It would be nice to have constant complexity when T
is a scalar type and no reallocation happens (ie. new_size <= capacity()
).
When we want to reduce size of buffer (ie. new_size < size()
), you could call erase_end(n)
internally which already implements an optimization for scalar types.
When we want to increase size of buffer, you could optimize for scalar types by calling std::memset()
at most 2 times.