March 20
Is there an elegant way, like with foreach, to step through a red black tree non-destructively?  This destructive failure is the best I've been able to come up with.

while(!rbt.empty)
{
    Node e = rbt.front;
    writeln("e = ", e);
    rbt.removeFront;
}

I don't suppose there are any gentle tutorials regarding the library containers?

March 20
On Thu, Mar 20, 2025 at 11:51:46PM +0000, WhatMeWorry via Digitalmars-d-learn wrote:
>     Is there an elegant way, like with foreach, to step through a red black
> tree non-destructively?  This destructive failure is the best I've been able
> to come up with.
> 
>     while(!rbt.empty)
>     {
>         Node e = rbt.front;
>         writeln("e = ", e);
>         rbt.removeFront;
>     }
> 
> 
> I don't suppose there are any gentle tutorials regarding the library containers?

Doesn't RedBlackTree have a member function or operator overload that
returns a (non-destructive) range over the container?  IIRC it should be
opSlice(), which means you should be able to do this:

	foreach (Node e; rbt[]) {
		... // whatever you need here
	}


T

-- 
Valentine's Day: an occasion for florists to reach into the wallets of nominal lovers in dire need of being reminded to profess their hypothetical love for their long-forgotten.