In diesem Artikel wird erklärt. Dazu sollte das C ++ - Programm mit:
#enthaltenBeachten Sie die Einbeziehung der Vektorbibliothek.
Artikelinhalt
Konstruktion
Der Bau eines normalen Vektors beginnt mit:
VektorName ist der Name des Vektors. Der folgende Code erstellt einen eindimensionalen Vektor mit einer verblüfften Initialisierungsliste mit 5 Zeichen:
VektorBeginnen Sie mit:
VektorBeachten Sie, wie eine Vektorvorlage zu einem weiteren Vorlagenargument geworden ist. Es sollte also als Vektor der Vektoren desselben Typs interpretiert werden. Name ist der Name des Vektors der Vektoren. Der folgende Code erstellt einen zweidimensionalen Vektor mit 6 verblüfften Initialisierungslisten mit jeweils 5 Zeichen für 6 Zeilen.
VektorDer äußere Vektorliteral hat Grenzwerte, und. Jeder Vektor für eine Zeile enthält Grenzwerte, und. Die Zeilenvektorliterale sind durch Kommas getrennt. Das Ende Semikolon befindet sich im unteren rechten Ende der Erstellungstabelle. Der 2D -Vektor hätte auch wie folgt erstellt werden können:
VektorDas heißt, ein 1D -Vektor wird erstellt, und sein variabler Name wird als Kenner für die verschiedenen Zeilen verwendet.
Jetzt können die Zeilen tatsächlich unterschiedliche Inhalte haben. In diesem Fall ist jede Zeile ein anderer Vektor mit einem anderen Namen.
Zugriff mit Indizes
Die Syntax zum Zugriff auf ein Element lautet:
2DVectorname [i] [j]Wo ich die Variable für eine bestimmte Zeile ist und J die Variable für eine bestimmte Spalte ist. Die Zeilenzählung beginnt von Null und die Spaltenzählung beginnt ebenfalls von Null. Der zweidimensionale Vektor der Vektoren muss nicht regelmäßig sein; Das heißt, die Anzahl der Spalten für jede Zeile muss nicht gleich sein. Der folgende Code liest den Wert von Index Zeile 2 (dritte Zeile) und Indexspalte 3 (vierte Spalte):
VektorDie Ausgabe ist 'D'.
Dies kann mit dem folgenden Codesegment auf die gleiche Weise geändert und erneut gelesen werden:
vtr [2] [3] = 'z';In diesem Fall ist die Ausgabe 'z'.
Nacheinander zugreifen
Die erste Zeile kann ab dem ersten Element, dann auf das zweite Element, dann auf das dritte Element bis zum letzten Element der ersten Zeile zugegriffen werden. Dann kann auf die nächste Zeile auf die gleiche Weise zugegriffen werden, dann auf die und dann auf die folgende, bis die letzte Reihe abgeschlossen ist. Dies erfordert zwei für Schleifen, wie der folgende Code zeigt:
vectoronedv = 'a', 'b', 'c', 'd', 'e';Beachten Sie, dass Twodv.size () gibt die Anzahl der Zeilen für die gesamte Tabelle an, während TWODV [i].size () gibt die Anzahl der Zellen (Spalten) für eine bestimmte Zeile an.
Einfügen einer Reihe
Vorne einfügen
Eine Reihe ist zu einem 2D -Vektor, da eine Zelle zu einem 1D -Vektor ist. Der gleiche Insertionsansatz wird verwendet, aber anstelle eines Zellwörtels wird ein Zeilenliteral verwendet. anstelle einer Wertkennung, einer Zeilenkennung (e.G., TWODV [i]) wird verwendet. Der folgende Code zeigt, wie eine Zeile vor dem 2D -Vektor eingefügt wird:
VektorDie Funktion mit Beginn () gibt einen Iterator zurück, der auf die erste Reihe des 2D -Vektors verweist. Beachten Sie, dass der zurückgegebene Iterator vom Typ Vektoren sein muss (e.G. Vektor
Einfügen innerhalb
Der folgende Code fügt eine Zeile in der Tabelle vor der spitzen dritten Reihe ein:
VektorDer Iterator wurde zweimal inkrementiert, um vor dem Einfügen auf die dritte Reihe zu verweisen. Die Insertion -Erklärung hätte gleichermaßen geschrieben werden können wie,
twodv.insert (p, '*', '$', '%', '$', '&');Das Ergebnis wäre das gleiche gewesen.
Eine Zeile anhängen
Eine Zeile kann mit der eine dimensionale Funktion push_back () angehängt werden. Der folgende Code zeigt dies:
VektorDie Anweisung push_back () hätte gleichermaßen geschrieben werden können wie,
twodv.push_back ('*', '$', '%', '$', '&');Das Ergebnis wäre das gleiche gewesen.
Zeilen löschen
Der folgende Code verwendet die eindimensionale ERASE () Vektorelementfunktion, um die zweite und dritte Zeilen zu löschen, obwohl der zweite Iterator auf die vierte Reihe des 5-Zeilen-Vektors der Vektoren zeigt:
VektorDie eindimensionale End () -Vektorelementfunktion gibt einen Iterator zurück, der kurz nach dem Ende des eindimensionalen Vektors (der jetzt ein Vektor von Vektoren ist) zeigt. Es wird im obigen Code zweimal abgeschlossen, um auf die letzte, aber eintreiche Zeile zu verweisen. Immer wenn eine Reihe von Elementen oder Zeilen gelöscht werden soll, wird das Element oder die Zeile, auf die der zweite Iterator gerichtet ist, nicht gelöscht.
Klar
Ein Element ist ein eindimensionaler Vektor, da eine Reihe ein zweidimensionaler Vektor (Vektor von Vektoren) ist. Alle Zeilen eines Vektors können mit der eindimensionalen Clear () -Mivierungsfunktion gelöscht werden. Der folgende Code zeigt dies:
VektorAbschluss
Ein Element ist ein eindimensionaler Vektor, da eine Reihe ein zweidimensionaler Vektor (Vektor oder Vektoren) ist. Alle eindimensionalen Elementfunktionen für den eindimensionalen Vektor können für den zweidimensionalen Vektor verwendet werden, der die Zeilen anstelle der Elemente adressiert. Auf einzelne Zellen der Tabelle kann mit twodv [i] [j] zugegriffen werden, wo twodv, i und j ihre gemeinsamen Bedeutungen haben. Der Vektor der Zeilen kann mit TWODV angesprochen werden, und jede Zeile kann mit TWODV [i] angesprochen werden.