You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.1 KiB
HTML
48 lines
1.1 KiB
HTML
<!menue>
|
|
|
|
<h1=Shadow Queue - die Standard Maschine>
|
|
Schnelle Queues sind das um und auf in einem Game. Neben verschiedensten Modellen wie einfache Listen, verkettete Listen, Arrays und den STL Containern, hat sich die Shadow Queue in der L3Lib durchgesetzt.
|
|
|
|
<!h2a=squeue T,Überblick über die ShadowQueue,squeue>
|
|
Shadow Queue ist eine Hybrid, sie ist eine extrem effektive und schnelle Queue.
|
|
Hybrid Funktionalität:
|
|
<!h3=Die Shadow Queue kann als Stack verwendet werden:>
|
|
<pre>
|
|
queue.Put( newitem1 );
|
|
queue.Put( newitem2 );
|
|
queue.Get(); -> newitem 2
|
|
queue.Get(); -> newitem 1
|
|
</pre>
|
|
<!h3=Als Iteratorobjekt:>
|
|
<pre>
|
|
while( item = queue.Next() ){
|
|
item.Action...
|
|
}
|
|
</pre>
|
|
<!h3=Zum Verwerfen von items:>
|
|
<pre>
|
|
while( item = queue.SGet() )
|
|
{
|
|
item.action...
|
|
if( item.killed == false )
|
|
queue.SPut(item) <- zurück in die shadowqueu
|
|
else
|
|
del item;
|
|
}
|
|
</pre>
|
|
SGet switched die vorder Queue mit der Shadow queue
|
|
|
|
<!h3=Als Arrayobjekt:>
|
|
<pre>
|
|
for( int i = 0 ; i < queue.InQueue(); i ++ ){
|
|
queue[ i ]->action // entspricht: ((item*)queue[i])->action
|
|
}
|
|
</pre>
|
|
<!h3=Als verkette Liste beim Entfernen von items:>
|
|
<pre>
|
|
queue.Remove( item );
|
|
</pre>
|
|
|
|
|
|
|