Klasse und Objekte
Eine Klasse ist eine Reihe von Variablen und Funktionen, die zusammenarbeiten, wobei die Variablen keine Werte zugewiesen haben. Wenn der Variablen Werte zugewiesen werden, wird eine Klasse zu einem Objekt. Verschiedene Werte, die derselben Klasse angegeben werden, führen zu verschiedenen Objekten. Das heißt, verschiedene Objekte können derselben Klasse haben, haben jedoch unterschiedliche Werte. Das Erstellen eines Objekts aus einer Klasse wird auch als Instanzipen des Objekts bezeichnet.
Der Begriff Vektor beschreibt eine Klasse. Ein aus einem Vektor erstellter Objekt hat einen Namen, der vom Programmierer ausgewählt wird.
Eine Funktion, die zu einer Klasse gehört, ist erforderlich, um ein Objekt aus der Klasse zu instanziieren. In C ++ hat diese Funktion den gleichen Namen wie der Name der Klasse. Verschiedene Objekte, die aus der Klasse erstellt (instanziiert) wurden.
Das Erstellen eines Objekts aus einer Klasse bedeutet, das Objekt zu konstruieren. Es bedeutet auch, das Objekt zu instanziieren.
Die Vektorklasse
Die Vektorklasse wurde bereits definiert und befindet sich in der Bibliothek. Um die Vektorklasse zu verwenden, muss ein Programmierer den Vektorheader in die Datei mit der folgenden Vorverarbeitungsrichtlinie aufnehmen:
#enthalten
Sobald der Header enthalten ist, werden alle Vektorfunktionen (Datenmitglieder und Mitgliederfunktionen) zugänglich. Um das Zählobjekt zum Ausgabe von Daten an der Terminal (Konsole) auszugeben, muss auch der Objektheader enthalten sein. Um ein Programm mit dem Vektor zu schreiben, müssen die folgenden Header mindestens enthalten sein:
#enthalten
#enthalten
Instanzipieren eines Vektors
int foo [10];
Oben ist die Erklärung eines Arrays mit dem Namen „Foo“ und der Anzahl der Elemente „10.Dies ist eine Reihe von ganzen Zahlen. Die Erklärung eines Vektors ist ähnlich. Für einen Vektor ist die Anzahl der Elemente optional, da die Vektorlänge zunehmen oder verringern kann.
Zu diesem Zeitpunkt im Programm wurde die Vektorklasse bereits in der Bibliothek definiert, und der Header wurde enthalten. Der Vektor kann wie folgt instanziiert werden:
STD :: Vektorvtr (8);
Hier ist der Vektor der speziellen Konstruktorfunktion. Die Art der Daten, die der Vektor enthält, ist „int“ in Winkelklammern. Der Begriff „VTR“ ist der Name, der vom Programmierer für den Vektor ausgewählt wurde. Schließlich ist „8“ in Klammern die vorläufige Anzahl von Ganzzahlen, die der Vektor haben wird.
Der Begriff „STD“ steht für den Standard -Namespace. In diesem Zusammenhang muss dieser Begriff von einem Doppeldarm folgen. Jeder kann seine eigene Bibliothek für Vektorklassen schreiben und sie verwenden. C ++ verfügt jedoch bereits über eine Standardbibliothek mit Standardnamen, einschließlich „Vektor.Um einen Standardnamen zu verwenden, muss der Standardname STD :: vorausgehen :: . Um das Eingeben von STD :: Jedes Mal im Programm für einen Standardnamen zu vermeiden, kann die Programmdatei wie folgt beginnen:
#enthalten
#enthalten
Verwenden von Namespace STD;
Überladen einer Funktion
Wenn zwei oder mehr verschiedene Funktionssignaturen denselben Namen haben, soll dieser Name überlastet werden. Wenn eine Funktion aufgerufen wird, bestimmen die Anzahl und Art der Argumente, welche Funktion ausgeführt wird.
Erstellung eines Vektors
Das Erstellen eines Vektors bedeutet das Instanziieren (Erstellen) eines Vektorobjekts. Die Konstruktorfunktion wird wie folgt überladen:
Vektorname
Dies erzeugt einen Vektor mit Länge Null und Typ „t“.Die folgende Anweisung erstellt einen Vektor mit Nulllänge des Typs "Float" mit dem Namen "VTR:"
Vektorvtr;
Vektorname (n)
Dies schafft einen Vektor mit N -Elementen vom Typ „t.Eine Erklärung für diesen Vektor mit vier Float -Elementen lautet wie folgt:
Vektorvtr (4);
Vektorname (n, t)
Dies schafft einen Vektor von N -Elementen, der auf den Wert t initialisiert wurde. Die folgende Aussage erstellt einen Vektor von 5 Elementen, wobei jedes Element den Wert 3 hat.4:
VektorVTR (5, 3.4);
Konstruktion mit Initialisierung
Ein Vektor kann auf eine der folgenden zwei Arten konstruiert (erstellt) und gleichzeitig initialisiert werden:
Vektorvtr = 1.1, 2.2, 3.3, 4.4;
Oder
Vektorvtr 1.1, 2.2, 3.3, 4.4;
Beachten Sie, dass es keine Klammern direkt nach dem Objektnamen gibt. Klammern, die kurz nach dem Objektnamen verwendet werden, sollte wie folgt die Initialisierungsliste haben:
Vektorvtr (1.1, 2.2, 3.3, 4.4);
Ein Vektor kann später mit der Initializer -Liste konstruiert und initialisiert werden. In diesem Fall werden die Klammern nicht verwendet:
Vektorvtr;
vtr = 1.1, 2.2, 3.3, 4.4;
Vektor V2 (v1)
Dies ist ein Kopierkonstruktor. Es erstellt einen Vektor V2 als Kopie des Vektors V1. Der folgende Code zeigt dies:
VektorVTR1 (5, 3.4);
Vektorvtr2 (vtr1);
Zuweisen eines Vektors während des Baus
Während des Baus kann ein leerer Vektor erstellt werden, während ein anderer wie folgt zugewiesen wird:
Vektorvtr1 1.1, 2.2, 3.3, 4.4;
Vektorvtr2 = vtr1;
Die zweite Aussage entspricht:
Vektorvtr2 = 1.1, 2.2, 3.3, 4.4;
Const Vector
Ein Const Vector ist ein Vektor, dessen Elemente nicht geändert werden können. Die Werte in diesem Vektor sind schreibgeschützt. Bei der Erstellung erscheint der Vektor wie folgt:
Const Vectorvtr 1.1, 2.2, 3.3, 4.4;
In diesem Vektortyp kann kein Element hinzugefügt oder entfernt werden. Darüber hinaus kann kein Wert geändert werden.
Mit Iterator konstruieren
Eine Vorlage bietet eine generische Darstellung für einen Datentyp. Ein Iterator liefert eine generische Darstellung des Scannens durch die Werte eines Containers. Die Syntax, um einen Vektor mit einem Iterator zu erstellen, lautet wie folgt:
Vorlage
Vektor (InputIterator zuerst, InputIterator Last, Const Allocator & = Allocator ());
Dies erstellt einen Vektor für den Bereich [zuerst, zuletzt) mit dem angegebenen Allocator, der später in diesem Artikel erörtert wird.
Einen Vektor zerstören
Einen Vektor zu zerstören, lassen.
Vektorkapazität
size_type capacity () const noexcept
Die Gesamtzahl der Elemente, die der Vektor ohne Neuzuweisung halten kann. Ein Codesegment dafür lautet wie folgt:
Vektorvtr (4);
int num = vtr.Kapazität();
Cout << num << '\n';
Die Ausgabe ist 4.
Reserve (n)
Speicherplatz ist nicht immer frei verfügbar. Zusätzlicher Platz kann im Voraus reserviert werden. Betrachten Sie das folgende Codesegment:
Vektorvtr (4);
vtr.Reserve (6);
Cout << vtr.capacity() << '\n';
Die Ausgabe ist 6. Der reservierte zusätzliche Raum beträgt 6 - 4 = 2 Elemente. Die Funktion gibt ungültig zurück.
size () const noexcept
Dies gibt die Anzahl der Elemente im Vektor zurück. Der folgende Code zeigt diese Funktion:
Vektorvtr (4);
float sz = vtr.Größe();
Cout << sz << '\n';
Die Ausgabe ist 4.
schrumpfen bis es passt()
Nachdem der Vektor einem Vektor mit der Funktion Reserve () eine zusätzliche Kapazität gegeben hat, kann der Vektor so hoch sind, dass er an seine ursprüngliche Größe passt. Der folgende Code zeigt dies:
Vektorvtr (4);
vtr.Reserve (6);
vtr.schrumpfen bis es passt();
int sz = vtr.Größe();
Cout << sz << '\n';
Die Ausgabe ist 4 und nicht 6. Die Funktion gibt ungültig zurück.
Größenänderung (SZ), Größenänderung (SZ, C)
Dies verändert den Vektor. Wenn die neue Größe kleiner als die alte Größe ist, werden die Elemente gegen Ende gelöscht. Wenn die neue Größe länger ist, wird gegen Ende ein Standardwert hinzugefügt. Verwenden Sie die Funktion "Größen () mit zwei Argumenten, um eine bestimmte Wertschöpfung hinzugefügt zu haben. Das folgende Codesegment zeigt die Verwendung dieser beiden Funktionen:
Vektorvtr1 1.1, 2.2, 3.3, 4.4;
vtr1.Größenänderung (2);
Cout << "New size of vtr1: " << vtr1.size() << '\n';
Vektorvtr2 1.1, 2.2;
VTR2.Größenänderung (4, 8.8);
Cout << "vtr2: "<< vtr2[0] <<" "<< vtr2[1] <<"
"<< vtr2[2] <<" "<< vtr2[3] << '\n';
Die Ausgabe ist Folgendes:
Neue Größe von VTR1: 2
VTR2: 1.1 2.2 8.8 8.8
Die Funktionen geben ungültig zurück.
leer () const noexcept
Diese Funktion gibt 1 für True zurück, wenn es keine Elemente im Vektor und 0 für False gibt, wenn der Vektor leer ist. Wenn ein Vektor 4 Stellen für eine bestimmte Art von Daten hat, z. B. Float ohne Schwimmerwert, ist dieser Vektor nicht leer. Der folgende Code zeigt dies:
Vektorvtr;
Cout << vtr.empty() << '\n';
VektorVT (4);
Cout << vt.empty() << '\n';
VektorV (4,3.5);
Cout << v.empty() << '\n';
Die Ausgabe ist Folgendes:
1Vektorelementzugriff
Ein Vektor kann wie ein Array unter-skizziert (indiziert) werden. Die Indexzählung beginnt von Null.
Vectorname [i]
Die Operation „Vectorname [i]“ gibt einen Verweis auf das Element des i zurückth Index des Vektors. Der folgende Code gibt 3 aus.3 Für den obigen Vektor:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr [2];
Cout << fl << '\n';
Vectorname [i] const
Die Operation "Vectorname [i] const" wird anstelle von "Vectorname [i]" ausgeführt, wenn der Vektor ein konstanter Vektor ist. Dieser Vorgang wird im folgenden Code verwendet:
Const Vectorvtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr [2];
Cout << fl << '\n';
Der Ausdruck gibt einen ständigen Hinweis auf das i zurückth Vektorelement.
Zuweisen eines Wertes mit dem Index
Ein Wert kann einem nicht konstanten Vektor wie folgt zugeordnet werden:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
VTR [2] = 8.8;
Cout << vtr[2] << '\n';
Die Ausgabe ist 8.8.
Vectorname.bei (i)
„Vectorname.bei (i) "ist wie" Vectorname [i] ", aber" Vectorname ".bei (i) “ist zuverlässiger. Der folgende Code zeigt, wie dieser Vektor verwendet werden soll:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.um 2);
Cout << fl << '\n';
at () ist eine Vektorelementfunktion.
Vectorname.bei (i) const
„Vectorname.bei (i) const "ist wie" Vectorname [i] const ", aber" Vectorname ".bei (i) const ”ist zuverlässiger. „Vectorname.bei (i) const ”wird anstelle von„ vectorname.bei (i) “, wenn der Vektor ein konstanter Vektor ist. Dieser Vektor wird im folgenden Code verwendet:
Const Vectorvtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.um 2);
Cout << fl << '\n';
at () const ist eine Vektorelementfunktion.
Zuweisen eines Wertes mit der Funktion AT ()
Ein Wert kann einem nicht konstanten Vektor mit der AT () -Funktion wie folgt zugeordnet werden:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
vtr.bei (2) = 8.8;
Cout << vtr[2] << '\n';
Die Ausgabe ist 8.8.
Problem mit Sub-SCRIPTING
Das Problem bei der Unter-SKRIPTING (Indizierung) ist, dass, wenn der Index außerhalb des Bereichs liegt, Null zurückgegeben werden kann oder ein Fehler zur Laufzeit ausgegeben werden kann.
Vorderseite()
Dies gibt einen Verweis auf das erste Element des Vektors zurück, ohne das Element zu entfernen. Die Ausgabe des folgenden Codes beträgt 1.1.
Vektorvtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.Vorderseite();
Cout << fl << '\n';
Das Element wird nicht vom Vektor entfernt.
Front () const
Wenn der Vektorkonstruktion von const vorgegangen ist, wird der Ausdruck „Front () const“ anstelle von „Front () ausgeführt.Dies wird im folgenden Code verwendet:
Const Vectorvtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.Vorderseite();
Cout << fl << '\n';
Eine konstante Referenz wird zurückgegeben. Das Element wird nicht vom Vektor entfernt.
zurück()
Dies gibt einen Verweis auf das letzte Element des Vektors zurück, ohne das Element zu entfernen. Die Ausgabe des folgenden Codes beträgt 4.4.
Vektorvtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.zurück();
Cout << fl << '\n';
back () const
Wenn der Vektorkonstruktion von const vorgegangen ist, wird der Ausdruck „Back () const“ anstelle von „zurück () ausgeführt ().Dies wird im folgenden Code verwendet:
Const Vectorvtr 1.1, 2.2, 3.3, 4.4;
float fl = vtr.zurück();
Cout << fl << '\n';
Eine konstante Referenz wird zurückgegeben. Das Element wird nicht vom Vektor entfernt.
Vektordatenzugriff
Data () noexcept; Data () const noexcept;
Beide dieser gibt einen Zeiger so zurück, dass [data (), data () + size ()) ein gültiger Bereich ist.
Dies wird später im Artikel ausführlicher behandelt.
Rückkehrer Iteratoren und Vektor
Ein Iterator ist wie ein Zeiger, hat aber mehr Funktionen als ein Zeiger.
begin () noexcept
Gibt einen Iterator zurück, der auf das erste Element des Vektors verweist, wie im folgenden Codesegment:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
Vektor:: iterator iter = vtr.Start();
Cout << *iter << '\n';
Der Ausgang ist 1.1. Beachten Sie, dass die Erklärung, die den Iterator empfängt, deklariert wurde. Der Iterator wird in einem Rückdruck der Rendite Derferenziert, um den Wert auf die gleiche Weise zu erhalten.
begin () const noexcept;
Gibt einen Iterator zurück, der auf das erste Element des Vektors verweist. Wenn der Vektorkonstruktion von const vorgegangen ist, wird der Ausdruck "begin () const" anstelle von "begin () ausgeführt.Unter dieser Bedingung kann das entsprechende Element im Vektor nicht geändert werden. Dies wird im folgenden Code verwendet:
Const Vectorvtr 1.1, 2.2, 3.3, 4.4;
Vektor:: const_iterator iter = vtr.Start();
Cout << *iter << '\n';
Der Ausgang ist 1.1. Beachten Sie, dass "const_iterator" diesmal anstelle von "Iterator" verwendet wurde, um den zurückgegebenen Iterator zu empfangen.
end () noexcept
Gibt einen Iterator zurück, der unmittelbar über das letzte Element des Vektors hinweist. Betrachten Sie das folgende Codesegment:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
Vektor:: iterator iter = vtr.Ende();
Cout << *iter << '\n';
Die Ausgabe ist 0, was bedeutungslos ist, da es kein konkretes Element über das letzte Element gibt.
End () const noexcept
Gibt einen Iterator zurück, der unmittelbar über das letzte Element des Vektors hinweist. Wenn der Vektorkonstruktion „const“ vorausgeht, wird der Ausdruck „End () const“ anstelle von „End () ausgeführt.Betrachten Sie das folgende Codesegment:
Const Vectorvtr 1.1, 2.2, 3.3, 4.4;
Vektor:: const_iterator iter = vtr.Ende();
Cout << *iter << '\n';
Die Ausgabe ist 0. Beachten Sie, dass "const_iterator" diesmal anstelle von "Iterator" verwendet wurde, um den zurückgegebenen Iterator zu empfangen.
Reverse Iteration
Es ist möglich, einen Iterator zu haben, der von Ende bis kurz vor dem ersten Element iteriert.
rbegin () noexcept
Gibt einen Iterator zurück, der auf das letzte Element des Vektors verweist, wie im folgenden Codesegment:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
Vektor:: Reverse_iterator Riter = vtr.rbegin ();
Cout << *rIter << '\n';
Die Ausgabe ist 4.4.
Beachten Sie, dass die Erklärung, die den umgekehrten Iterator empfängt, deklariert wurde. Der Iterator wird in einem Rückdruck der Rendite Derferenziert, um den Wert auf die gleiche Weise zu erhalten.
rbegin () const noexcept;
Gibt einen Iterator zurück, der auf das letzte Element des Vektors verweist. Wenn der Vektorkonstruktion „const“ vorausgeht, wird der Ausdruck „rBegin () const“ anstelle von „rBegin () ausgeführt.Unter dieser Bedingung kann das entsprechende Element im Vektor nicht geändert werden. Diese Funktion wird im folgenden Code verwendet:
Const Vectorvtr 1.1, 2.2, 3.3, 4.4;
Vektor:: const_reverse_iterator riter = vtr.rbegin ();
Cout << *rIter << '\n';
Die Ausgabe ist 4.4.
Beachten Sie, dass diesmal der const_reverse_iterator verwendet wurde, anstatt nur den Reverse_iterator, um den zurückgegebenen Iterator zu empfangen.
rend () noexcept
Gibt einen Iterator zurück, der kurz vor dem ersten Element des Vektors zeigt. Betrachten Sie das folgende Codesegment:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
Vektor:: Reverse_iterator Riter = vtr.zerreißen();
Cout << *rIter << '\n';
Die Ausgabe ist 0, was bedeutungslos ist, da es kurz vor dem ersten Element kein konkretes Element gibt.
rend () const noexcept
Gibt einen Iterator zurück, der kurz vor dem ersten Element des Vektors zeigt. Wenn der Vektorkonstruktion „const“ vorausgeht, wird der Ausdruck „rend () const“ anstelle von „rend () ausgeführt.Betrachten Sie das folgende Codesegment:
Const Vectorvtr 1.1, 2.2, 3.3, 4.4;
Vektor:: const_reverse_iterator riter = vtr.zerreißen();
Cout << *rIter << '\n';
Die Ausgabe ist 0.
Beachten Sie, dass diesmal der const_reverse_iterator verwendet wurde, anstatt nur den Reverse_iterator, um den zurückgegebenen Iterator zu empfangen.
Vektormodifikatoren
Ein Modifikator, der den Vektor ändert.
A.Emplace (P, Args)
Fügt ein Objekt vom Typ t mit std :: vorwärts (args)… vor p ein.
Details - siehe später
Einfügen (Iteratorposition, Wert)
Fügt eine Kopie des Wertes an der Iteratorposition des Vektors ein. Gibt den Iterator (Position) im Vektor zurück, in dem die Kopie platziert wurde. Der folgende Code zeigt an, wo der Wert platziert wurde:
Vektorvtr 10, 20, 30, 40;
Vektor:: iterator iter = vtr.Start();
++Iter;
++Iter;
vtr.Insert (iter, 25);
Cout << vtr[1] << " << vtr[2]<< '
'' << vtr[3] << '\n';
Die Ausgabe ist: 20 25 30.
Beachten Sie, dass der Iterator genau wie ein Zeiger fortgeschritten (inkrementiert) wurde.
Eine Initialisierungsliste kann auch eingefügt werden, wie der folgende Code zeigt:
Vektorvtr 10, 20, 30, 40;
Vektor:: iterator iter = vtr.Start();
++Iter;
++Iter;
vtr.insert (iter, 25, 28);
Cout << vtr[1] << " << vtr[2]<< '
'' << vtr[3]<< " << vtr[4] << '\n';
Die Ausgabe ist: 20 25 28 30 30.
löschen (Position)
Entfernt ein Element an der vom Iterator gerichteten Position und gibt dann die Iteratorposition zurück. Der folgende Code zeigt dies:
Vektorvtr 10, 20, 30, 40;
Vektor:: iterator iter = vtr.Start();
++Iter;
++Iter;
vtr.löschen (iter);
Cout << vtr[0] << " << vtr[1] << '
'' << vtr[2]<< '\n';
Die Ausgabe ist: 10 20 40
push_back (t), push_back (RV)
Wird verwendet, um am Ende des Vektors ein einzelnes Element hinzuzufügen. Verwenden Sie wie folgt Push_back (T):
Vektorvtr 1.1, 2.2, 3.3, 4.4;
vtr.push_back (5.5);
float fl = vtr [4];
Cout << fl << '\n';
Der Ausgang ist 5.5.
push_back (RV): - Siehe später.
Pop zurück()
Entfernt das letzte Element, ohne es zurückzugeben. Die Größe des Vektors wird um 1 reduziert. Der folgende Code zeigt dies:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
vtr.Pop zurück();
float sz = vtr.Größe();
Cout << sz << '\n';
Die Ausgabe ist 3.
A.Tausch (b)
Zwei Vektoren können ausgetauscht werden, wie im folgenden Codesegment dargestellt:
Vektorvtr1 1.1, 2.2, 3.3, 4.4;
Vektorvtr2 10, 20;
vtr1.Swap (vtr2);
Cout << "vtr1: "<< vtr1[0] <<" "<< vtr1[1] <<"
"<< vtr1[2] <<" "<< vtr1[3] << '\n';
Cout << "vtr2: "<< vtr2[0] <<" "<< vtr2[1] <<"
"<< vtr2[2] <<" "<< vtr2[3] << '\n';
Die Ausgabe ist:
VTR1: 10 20 0 0
VTR2: 1.1 2.2 3.3 4.4
Beachten Sie, dass die Länge eines Vektors bei Bedarf erhöht wird. Auch Werte, die nicht ersetzt wurden, werden durch einen Standardwert ersetzt.
klar()
Entfernt alle Elemente aus dem Vektor, wie das folgende Codesegment zeigt:
Vektorvtr 1.1, 2.2, 3.3, 4.4;
vtr.klar();
Cout << vtr.size() << '\n';
Die Ausgabe ist 0.
Gleichheit und relationale Operatoren für Vektoren
Der == Operator
Gibt 1 für True zurück, wenn die beiden Vektoren die gleiche Größe haben und die entsprechenden Elemente gleich sind; Ansonsten gibt es 0 für false zurück. Zum Beispiel:
VektorU 1, 2, 3;
VektorV 4, 5, 6;
bool bl = u == v;
Cout << bl << '\n';
Die Ausgabe ist 0.
Der != Operator
Gibt 1 für True zurück, wenn die beiden Vektoren nicht die gleiche Größe haben und/oder die entsprechenden Elemente nicht gleich sind; Ansonsten gibt es 0 für false zurück. Zum Beispiel:
VektorU 1, 2, 3;
VektorV 4, 5, 6;
bool bl = u!= V;
Cout << bl << '\n';
Der Ausgang ist 1.
Der < Operator
Gibt 1 für True zurück, wenn der erste Vektor die anfängliche Teilmenge des zweiten Vektors ist, wobei die Elemente der beiden gleichen Teile gleich und in derselben Reihenfolge sind. Wenn beide Vektoren gleich groß sind und sich von links nach rechts bewegen und ein Element im ersten Vektor auftritt, der im zweiten Vektor geringer ist als das entsprechende Element, wird 1 weiterhin zurückgegeben. Ansonsten wird 0 für False zurückgegeben. Zum Beispiel:
VektorU 3, 1, 1;
VektorV 3, 2, 1;
bool bl = uCout << bl << '\n';
Der Ausgang ist 1. < does not include the case when the size and order are the same.
Der> Operator
Kehrt zurück !(U < V), where U is the first vector and V is the second vector, according to the above definitions.
Der <= Operator
Gibt u zurück <= V, where U is the first vector and V is the second vector, according to the above definitions.
Der> = Operator
Kehrt zurück !(U <= V), where U is the first vector and V is the second vector, according to the above definitions.
Abschluss
Ein Vektor ist ein Beispiel für einen Sequenzbehälter. Ein Vektor ist eine „bessere“ Form des gewöhnlichen Arrays und wird von einer Klasse instanziiert. Vektoren haben Methoden, die unter: Konstruktion und Zuordnung, Kapazität, Elementzugriff, Datenzugriff, Iteratoren, Modifikatoren und numerische überlastete Operatoren eingestuft werden.
Es gibt andere Sequenzcontainer, die als Liste, Stürmer_List und Array bezeichnet werden. Wenn die Aufgabe häufige Einfügungen und Löschungen in der Mitte der Sequenz umfasst, sollte eine Liste oder Vorwärtsliste verwendet werden. Wenn die Aufgabe zu Beginn oder am Ende der Sequenz häufige Einfügungen und Löschungen beinhaltet, sollte ein Deque verwendet werden. Und so sollten Vektoren nur verwendet werden, wenn diese Art von Operationen nicht wichtig sind.