Vor dem Array kann kein Element enthalten sein. Bei C ++ 17 und höher kann ein Element mit der EMPLAP () -Member -Funktion vor dem Vektor enthalten sein.
Für den Rest dieses Artikels werden Unterschiede zwischen dem Vektor und dem Array veranschaulicht. Für jeden Punkt wird die Unfähigkeit des Arrays erwähnt, oder seine stumpfe oder umständliche Art, dasselbe Ziel zu erreichen.
Artikelinhalt
Erstellen eines Vektors oder Arrays
Ein Vektor kann auf verschiedene Weise erstellt werden. Der grundlegende Weg ist wie folgt:
VektorEntsprechend würde ein Array wie folgt erstellt:
char arr [] = 'a', 'b', 'c', 'd', 'e';Beachten Sie die Differenz in den Operanden, die sich links vom Zuordnungsbetreiber befinden. Die Anzahl der Elemente für den Vektor kann dann hinzugefügt oder reduziert werden, aber die Größe des Arrays bleibt in diesem Fall um 5 Uhr fest.
Um einen Vektor in einem Programm zu haben und zu verwenden, sollte das Programm mit:
#enthaltenUm ein Array in einem Programm zu haben und zu verwenden, ist keine Präprozessoranweisung erforderlich.
Zunehmende Größe
Der folgende Code zeigt, wie ein Vektor von zunächst zwei Elementen auf vier Elemente erhöht wird, wobei die Funktion Push_back () unter Verwendung von Member -Funktionen auf vier Elemente erhöht wird:
VektorDieser Code sollte in einer Funktionskörper vorhanden sein. Erstellen Sie für das Array und da das Array eine feste Größe hat, erstellen Sie ein Array für die maximale Anzahl der vorgesehenen Elemente, bevor Sie die Elemente mit dem [] Operator hinzufügen. Beispiel:
char arr [4];Außerdem sollte sich dieser Code in einem Funktionskörper befinden.
Einfügen
Im folgenden Code wird ein Element vor dem Element eingefügt, auf das der Iterator P: P:
vectorVtr = 'a', 'b', 'd', 'e';Die Ausgabe ist:
A b c d eDie erste Anweisung des Code erstellt das Vektorobjekt. 'C', das nach alphabetischer Ordnung vor 'D' hätte sein müssen, fehlt hier nicht. Die zweite Erklärung gibt einen Iterator zurück, der auf das erste Element des Vektors verweist. Die nächsten beiden Aussagen erhöhen den Zeiger auf 'D'. Die Anweisung nach dem Nachweis von CH zugewiesen CH 'C'. In diesem Codesegment fügt die letzte Anweisung 'C' vor 'D' mit dem Iterator ein.
Was das Array betrifft, kann ein Element auf keinen Fall eingefügt werden. Aufgrund solcher Einschränkungen für das Array wurden der Vektor und andere Behälter entworfen.
HINWEIS: Die Funktion Insert () kann auch verwendet werden, um ein Element vor einem Vektor einzufügen.
Angehängt
Anhängen bedeutet, Elemente auf der Rückseite hinzuzufügen. Mit der Member -Funktion push_back () können Elemente auf der Rückseite des Vektors hinzugefügt werden - siehe oben. Das Array kann nicht angehängt werden. Die einzige Möglichkeit, dieses Problem für das Array zu umgehen. Elemente von Anfang an eingeben. Dann werden im Array ein Raum (Zellen) zurückgelassen. Wenn dann auf der Rückseite Elemente hinzugefügt werden müssen, passen Sie die Elemente (Werte) in die Leerzeichen, die leer sind (die Standardwerte haben).
Ein Element löschen
Für den Vektor kann ein Element mit dem Iterator gelöscht werden. Der Iterator verweist dann auf das nächste Element, das vor der Löschung dort war. Der folgende Code löscht 'B':
vectorVtr = 'a', 'b', 'c', 'd', 'e';Kein Element des Arrays kann gelöscht werden, obwohl es geändert werden kann.
Klar
Alle Elemente des Vektors können mit seiner Mitgliedsfunktion Clear () wie folgt entfernt werden:
vectorVtr = 'a', 'b', 'c', 'd', 'e';Die Ausgabe ist nichts. Das Beste mit dem Array ist, alle Elemente durch einen Standardwert zu ersetzen. Mit der Ganzzahl beträgt der Standardwert 0. Der folgende Code zeigt:
int arr [] = 1, 2, 3, 4, 5;Die Ausgabe ist:
0 0 0 0 0Mit dem Zeichen ist der Standardwert der NUL -Zeichen \ 0. Der folgende Code zeigt:
char arr [] = 'a', 'b', 'c', 'd', 'e';Die Ausgabe zeigt nichts.
Tauschen
Auch wenn zwei Vektoren nicht gleich groß sind, können ihre Elemente mit der SWAP () -Mitglied -Funktion getauscht werden. Der folgende Code zeigt dies:
Vektor vtr1 = 'a', 'b', 'c', 'd', 'e';Damit zwei Arrays ausgetauscht werden müssen, müssen sie von der gleichen Länge sein. Das Array hat keine Mitgliederfunktionen (keine Methoden). Um Elemente gegen Arrays auszutauschen, sollte ein Code wie folgt geschrieben werden:
char arr1 [] = 'a', 'b', 'c', 'd', 'e';Die Ausgabe ist:
Inhalt von New ARR1:Größe
Die Größe des Vektors wird durch seine Mitgliedsfunktion Size () zurückgegeben. Das heißt, es wird zur Laufzeit bestimmt. Illustration:
vectorVtr = 'a', 'b', 'c', 'd';Es kann auch so gemacht werden:
char arr [7] = 'a', 'b', 'c', 'd';Das heißt, eine Zahl (Größe) zu setzen, die höher ist als die vermeintliche Größe (in diesem Fall 4). Die Zahl sollte jedoch nicht kleiner als die Anzahl der anfänglichen Elemente sein.
Variabler Länge Array
Die Größe des Arrays kann jedoch zur Laufzeit verabreicht werden (nicht bestimmt) werden. In diesem Fall muss das Array in einer Funktion oder in einem ähnlichen Konstrukt erstellt werden. Das folgende Programm zeigt dies:
#enthaltenDie Ausgabe ist:
A B C DAbschluss
Die Hauptunterschiede zwischen dem Vektor und dem Array sind wie folgt: Die Größe (Länge) eines Vektors kann natürlich erhöht werden, aber die eines Arrays ist festgelegt und kann nicht erhöht werden. Elemente können in einen Vektor eingefügt werden, können jedoch nicht in ein Array eingefügt werden. Elemente können am Ende des Vektors angehängt werden, können jedoch nicht am Ende des Arrays angehängt werden. Der Vektor ist eine Klasse, aus der andere Vektorobjekte instanziiert sind, aber das Array ist ein konstanter Zeiger auf eine Datensequenz desselben Typs. Der Vektor verfügt über Methoden (Mitgliedsfunktionen), das Array jedoch nicht, und so wird der Vektor als Datenstruktur bezeichnet. Während der Zeiger mit dem Array verwendet werden kann, werden Iteratoren mit dem Vektor verwendet. Ein Iterator ist ein ausgefeilter Zeiger. Das Array zeigt entweder seine Unfähigkeit oder hat eine stumpfe oder umständliche Art, das gleiche Ziel für jeden Unterschied zu erreichen.