Remove elements without losing capacity
Nick Treleaven
nick at geany.org
Mon Oct 24 12:07:17 UTC 2022
On Tuesday, 4 October 2022 at 18:18:41 UTC, Ali Çehreli wrote:
> A related topic is how the "end slice" never loses that
> capacity:
>
> void main() {
> auto a = [ 1, 2 ];
> auto b = a;
>
> assert(a.capacity != 0);
> assert(b.capacity != 0);
>
> b.length--;
> assert(b.capacity == 0);
> assert(a.capacity != 0); // <-- Preserved
> }
>
> Aside: .capacity is an expensive operation that requires some
> levels of table lookups in the druntime. A data structure would
> benefit a lot if it kept its own capacity as a member variable.
I've now made a pull to document this:
https://github.com/dlang/dlang.org/pull/3445
More information about the Digitalmars-d-learn
mailing list