Is there such concept of a list in D?
IGotD-
nise at nise.com
Mon Dec 19 12:43:41 UTC 2022
On Saturday, 10 December 2022 at 15:59:07 UTC, Ali Çehreli wrote:
>
> There isn't a single point in favor of linked lists.
Yes there is, there are still special cases where linked lists
can be a better alternative. Especially a version with intrusive
members (with next/prev pointers as members in your object)
The intrusive linked list doesn't need any extra allocation apart
from the object itself which means less fragmentation and small
container allocations.
The double linked list has O(1) insert and delete, arrays has not.
The single linked list offer completely lockless variants, which
is also completely unbounded.
The intrusive linked list has better performance with everything,
except random access.
You can move/splice entire lists without copying.
The linked list performs equally well regardless of number of
objects or object size. The performance of arrays depend on this.
As CPUs has progressed the array has become more favorable than
the linked list type that is being offered by most standard
libraries (the one that must allocate container objects, not
intrusive). For most programming practices the array is usually
the best. However, there are occasions where the linked list can
be worth to be considered.
More information about the Digitalmars-d-learn
mailing list