Vector

Top  Previous  Next

Skripte > Klassen-Elemente und C++-Befehle > interpretierte C++-Anweisungen > Container > Vector

 

In der Containerklasse Vector wird eine Liste von Elementen verwaltet. Alle Elemente einer Liste haben den gleichen Datentyp. Es gibt jedoch verschiedene Vector-Typen, je nach Typ der enthaltenen Elemente. (Siehe obige Tabelle)

 

Syntax

 

vbool <bezeichner>

vint <bezeichner>

vuint <bezeichner>

vchar <bezeichner>

vstr <bezeichner>

vnode <bezeichner>

 

Beschreibung

 

Die Reihe der Vector-Typen sind im exportierten Code typedefs der Klasse CTT_Vector< value_type >. CTT_Vector ist abgeleitet von std::vector< value_type >

 

Sämtliche Vector-Klassen verfügen über die gleichen Methoden. Dies sind

 

1. die nur lesenden Methoden der allgemeinen Cursor-Klasse

 

bool                isValid() const

bool                hasCurrent() const

bool                empty() const        

unsigned int        size() const

bool                gotoNext()

bool                gotoPrev()

value_type        value() const

bool                containsValue(const value_type& ) const

bool                findValue(const value_type& xValue)

bool                findNextValue(const value_type& xValue)

bool                findPrevValue(const value_type& xValue)

 

 

2.) getCursor() const

 

Mit dieser Methode wird die Verbindung eines externen Cursors mit dem Vector hergestellt.

 

Beispiel:

 

vint v;

vint::cursor cr =  v.getCursor();

 

cr zeigt nun auf das gleiche Datenelement wie der interne Cursor, kann aber unabhängig vom ersten neu positioniert werden.

 

 

3) Methoden, die den Inhalt des Vectors verändern

 

void reset()

 

Setzt den Cursor vor bzw. hinter die Liste der Elements des Vectors.

 

 

void clear()

 

entfernt alle Elemente und führt reset aller Cursor durch.

 

 

void push_back(const value_type& xValue)

 

fügt xValue als neues Element am Ende des Vectors an. Für alle Cursor wird reset durchgeführt.

 

 

void pop_back()

 

entfernt das letzte Element aus dem Vector. Für alle Cursor wird reset durchgeführt. Wenn der Vector leer ist, wird ein Fehler erzeugt. Zur Sicherheit sollte daher vor dem Aufruf von pop_back zunächst geprüft werden, ob der Vector Elemente enthält:

 

if(v.size())

v.pop_back();

 

 

bool remove()

 

löscht das aktuelle Element aus dem Vector und gibt bei Erfolg true zurück. Gibt es kein aktuelles Element oder tritt ein Fehler auf, wird false zurückgegeben. Für alle Cursor wird reset durchgeführt.

 

 

bool setValue(const value_type& xValue)

 

Setzt den Wert des aktuellen Elements als xValue und gibt bei Erfolg true zurück. Gibe es kein aktuelles Element oder tritt ein Fehler auf, so gibt die Funktione false zurück.

 

 

4) Direkter Zugriff auf die Elemente

 

 

value_type back()

 

liefert das letzte Element zurück. Wenn der Vector leer ist, wird ein Fehler erzeugt. Zur Sicherheit sollte daher vor dem Aufruf von back zunächst geprüft werden, ob der Vector Elemente enthält:

 

if(v.size())

value = v.back();

 

 

value_type front()

 

liefert das erste Element zurück. Wenn der Vector leer ist, wird ein Fehler erzeugt. Zur Sicherheit sollte daher vor dem Aufruf von front zunächst geprüft werden, ob der Vector Elemente enthält:

 

if(v.size())

value = v.front();

 

 

Index-operator

 

Auf die Elemente, die zuvor mit der push_back Methode in den Vektor eingefügt wurden, kann mittels ihres indexes direkt zugegriffen werden. Das erste Element hat den Index 0 und das letzte den Index size() -1. Wenn ein vstr namens v existiert, so kopiert

 

str s = v[0];

 

das erste Element in den String s und

 

v[0] = s;

 

kopiert den str s in das erste Element, falls es existiert. Wenn nicht zuvor ein Element mit der push_back Methode in den Vektor eingefügt wurde, erscheint eine Fehlermeldung.

 



Diese Seite gehört zur TextTransformer Dokumentation

Home  Inhalt  English