So how do I find and remove an element from DList?

Steven Schveighoffer schveiguy at gmail.com
Fri Jul 10 19:23:57 UTC 2020


On 7/10/20 3:08 PM, Ogi wrote:
> auto list = DList!int([1, 2, 3, 4]);
> list.remove(list[].find(2).take(1));
> 
>> Error: function std.container.dlist.DList!int.DList.remove(Range r) is 
>> not callable using argument types (Take!(Range))
> 
> It works if I replace `remove` with `linearRemove`, but that defeats the 
> whole purpose of using a doubly linked list.

It's not linear over the size of the list, it's linear over the size of 
the range.

If you are always removing 1 element, it's effectively O(1).

-Steve


More information about the Digitalmars-d-learn mailing list