Remove (Vektoroperation)
Remove
Stack | Position | Beschreibung |
---|---|---|
Stack(In) | Top | Vektor x |
Top-1 | zu löschendes Element a | |
Stack(Out) | Top | - |
Entfernt aus dem Vektor x das Element a, unabhängig davon, am welcher Position sich a im Originalvektor befindet. Element a wird nur einmal, d.h. bei seinem ersten Auftreten im Vektor, entfernt. Der Vektor bleibt unverändert, wenn er a nicht enthält.
Für Objekte, die aus dem Vektor entfernt werden sollen, gilt: Das Objekt selbst muss im Vektor enthalten sein, es reicht nicht, wenn ein gleiches Objekt enthalten ist: 1€ ist gleich 1€, aber diese beiden CX_VALUE-Objekte müssen nicht identisch sein. RemoveSame prüft bei Primitivobjekten auf Gleichheit.
Diese Operation erzeugt keinen neuen Vektor wie der Operand - und ist daher effizienter.
Code-Beispiel:
1€ [ 1€ 2€ ] Remove => [ 1€ 2€ ] // 1€ ist zwar gleich 1€, aber nicht identisch! Var(o1, o2) 1€ -> o1 2€ -> o2 o1 [ o1 o2 ] Remove => [ o2 ] o1 [ o1 o2 o1 ] Remove => [ o2 o1 ] // Nur das erste Vorkommen