C ++ - Listenfunktionen

C ++ - Listenfunktionen
„Listen sind Container für Sequenzen, die überall innerhalb der Sequenz sowie Iteration in beide Richtungen eingesetzt werden und Operationen überall löschen. Listenbehälter werden als doppelt verknüpfte Listen implementiert, die die Aufbewahrung aller Elemente an mehreren nicht verwandten Speicherplätzen ermöglichen.

Die wichtigste Unterscheidung zwischen ihnen und den Vorwärtslistenobjekten ist, dass erstere einzelne Listen sind, was bedeutet, dass sie nur vorwärts iteriert werden können, um etwas kleiner und effektiver zu sein.”

C ++ - Liste

Infolgedessen hält ein Vektor seine Elemente nicht wie eine Liste in einem zusammenhängenden Speicher. Da es lange dauert, um alle Informationen zu verschieben, sind das Einfügen und die Löschung in der Mitte eines Vektors ziemlich teuer. Die verknüpfte Liste, die in seiner Implementierung einen Listencontainer verwendet, löst dieses Problem. Die Liste speichert die Elemente in einem zusammenhängenden Speicher, der Vektor speichert jedoch in einem nicht zusammenhängenden Speicher. Da es lange dauert, um alle Elemente zu bewegen, sind das Einsetzen und die Löschung im Vektor ziemlich teuer.

Listen bieten eine bidirektionale Kommunikation und bieten ein effektives Mittel zur Durchführung von Einfügen und Löschvorgängen.

Arten der Liste

Einzelliste

Es ist die einfachste Art von verknüpfter Liste mit jedem Knoten, einschließlich Daten und einem Zeiger auf den Knoten, der denselben Datenart enthält. Da es einen Zeiger auf den folgenden Knoten hat, speichert der Knoten die Adresse dieses Knotens in der Sequenz. Daten können nur in einer einzigen verknüpften Liste auf eine Weise durchquert werden.

Doppelverbindungsliste

Die Daten und zusätzlichen Zeiger, der als früherer Zeiger bezeichnet wird und in einer einzig verknüpften Liste vorhanden ist, sind auch in einer doppelt verknüpften Liste vorhanden. Der vorhergehende Link des ersten Knotens in der Liste zeigt auf NULL, genau wie der Endknoten des nächsten Knotens der Liste.

Rundschreiben

Eine kreisförmige verknüpfte Liste hat alle ihre Knoten in einem Kreis verbunden. Der endgültige Null ist nicht vorhanden. Es gibt zwei Arten von kreisförmigen verknüpften Listen: Einzelkreis- und Doppelkreislauf.

Vorteile der C ++ - Liste

Da die Größe der verknüpften Liste während der Verwendung schwankt, gibt es keinen Speicherverlust.

Es gibt keinen Speicherverlust, da sich die Größengrößen der verknüpften Liste anwendet, sobald sie verwendet wird.

  • Implementierung: Lineare Datenstrukturen wie Stapel und Warteschlangen werden häufig mit verbundenen Listen implementiert.
  • Einfügen und Löschdienste: Die vernetzte Liste vereinfacht das Insertion und Löschen erheblich. Es besteht keine Notwendigkeit, ein Element zu verlagern, nachdem es hinzugefügt oder entfernt wurde. Stattdessen muss die Adresse im nächsten Zeiger nur geändert werden.

C ++ - Listenfunktionen

Liste :: vorne ()

Die integrierte C ++ STL-Funktionsliste :: Front gibt einen Verweis auf den ersten Eintrag in einem Listenbehälter zurück.

Syntax:

# Listennamen.Vorderseite()

Parameter:

Diese Funktion gibt lediglich einen Verweis auf den ersten Eintrag im Listencontainer zurück. Es akzeptiert keine Parameter.

Rückgabewert: Das erste Element im Listencontainer wird direkt durch diese Funktion referenziert.

Ausnahme: Wenn diese Funktion mit einem leeren Listenbehälter verwendet wird, erzeugt sie ein undefiniertes Verhalten.

Liste zurück ()

Ein direkter Verweis auf das endgültige Element im Listencontainer wird von der Liste :: zurück () in der C ++ stl zurückgegeben. Weil List :: End () nur einen Iterator für den letzten Eintrag liefert, unterscheidet sich diese Funktion von dieser.

Syntax:

# Listennamen.zurück()

Parameter:

Es gibt keinen Parameter; den Wert zurückgeben. Das endgültige Element in der Liste der Listen -Container -Demo -Liste wird direkt auf diese Funktion verwiesen.

Ausnahme: Es gibt keine solche Ausnahme in dieser Methode, aber wenn Sie sie mit einem leeren Listen -Container aufrufen, verhalten sich C ++ auf undefinierbare Weise.

Liste :: push_front ()

Die integrierte C ++ STL-Methode Push Front () wird verwendet, um ein Element kurz vor dem oberen Element in einem Listenbehälter einzufügen. Zusätzlich wird die Größe des Behälters durch diese Funktion um 1 gesteigert.

Syntax:

# Listennamen.push_front (Datentyp -Wert)

Parameter:

Diese Option bezeichnet das Element, das ganz oben auf der Liste hinzugefügt werden muss.

Rückgabewert:

Diese Funktion wird nichts zurückgegeben.

Liste: push_back ()

Um ein neues Element in einen vorhandenen Listencontainer einzufügen, verwenden Sie die Liste: Drücken. Es fügt das Element hinzu, das dem Listencontainer hinzugefügt werden soll, indem es als Argument angenommen wird.

Syntax:

# Listennamen.push_back (Wert)

Parameter:

Für diese Funktion gibt es nur einen notwendigen Parameter. Dies bezieht sich auf das Listennamenelement, das eingefügt werden muss.

Rückgabetyp: Der Rückgabetyp dieser Funktion ist ungültig und hat keinen Rückgabewert.

Liste :: pop_front ()

Das Frontelement eines Listen-Containers kann mit der integrierten C ++ STL-Funktionsliste entfernt werden :: Pop Front (). Infolgedessen reduziert diese Funktion die Größe des Containers um 1, während der Eintrag von der Spitze der Liste entfernt wird.

Syntax:

# Listennamen.pop_front ();

Rückgabewert:

Diese Funktion wird nichts zurückgegeben.

Liste :: pop_back ()

Verwenden Sie die integrierte C ++ STL-Methodenliste :: Pop zurück, um ein Element von einem Listenbehälter zurück zu entfernen. Mit anderen Worten, das letzte Element in einem Listenbehälter wird durch diese Funktion entfernt. Das Entfernen eines Mitglieds aus dem Ende der Liste Diese Funktion reduziert die Größe des Containers um 1 um 1.

Syntax:

# Listennamen.Pop zurück();

Rückgabewert:

Diese Funktion wird nichts zurückgegeben.

Liste :: begin ()

Dies unterscheidet es von der Front () -Funktion.

Syntax:

# Listennamen.Start()

Parameter:

Es werden keine Parameter übergeben.

Liste :: rend ()

Die integrierte Liste :: Rend () Methode im C ++ STL gibt einen umgekehrten Iterator zurück, der vor dem Start der Liste auf einen Ort verweist.

Syntax:

# Listennamen.zerreißen()

Rückgabewert:

Ein umgekehrter Iterator zeigt auf einen Ort, bevor der Start der Liste zurückgegeben wird.

Liste :: cbegin ()

Die integrierte C ++ STL-Methode cbegin () gibt einen konstanten Zufallszugriffs-Iterator zurück, der auf den Start der Liste hinweist.

Syntax:

# Listennamen.cbegin ()

Liste :: cend ()

Ein konstanter Zufallszugriffs-Iterator, der bis zum Ende der Liste verweist.

Syntax:

# Listennamen.Cend ()

Liste :: crbegin ()

Die integrierte C ++ STL-Methode crbegin () gibt einen konstanten umgekehrten Iterator zurück, der zum endgültigen Element der Liste oder zum umgekehrten Beginn des Containers führt. Aufgrund der ständigen Natur des Iterators können die Elemente nicht geändert oder geändert werden.

Syntax:

# Listennamen.crbegin ()

Liste :: crend ​​()

Die integrierte C ++ STL-Methode CREP gibt einen konstanten umgekehrten Iterator zurück, der mit dem #Hypothetischen Element verknüpft ist, das vor dem ersten Element in der Liste oder dem umgekehrten Ende der Liste kommt. Der Iterator ist konstant; Daher können die Elemente nicht geändert oder aktualisiert werden.

Syntax:

# Listennamen.Crend ()

Liste :: leer ()

Um zu überprüfen, ob ein bestimmter Listenbehälter leer ist oder nicht, verwenden Sie die integrierte C ++ STL-Funktionsliste :: leer (). Diese Funktion verändert die Liste nicht. Sie bestimmt einfach, ob eine Liste leer ist oder nicht oder ob ihre Größe 0 beträgt oder nicht.

Syntax:

# Listennamen.leer()

Liste :: Einfügung ()

Verwenden Sie die Liste :: Inise (), um Einträge in eine Liste einzufügen :: Inise (). Positionieren Sie die Anzahl der zum Einfügen einfügigen Elemente und der Wert, den die drei Parameter für diese Funktion haben. Wenn nicht angegeben, wird die Anzahl der Elemente standardmäßig auf eine festgelegt.

Syntax:

# Insert (pos_iter, ele_num, ele)

Liste :: erase ()

Mit dem integrierten C ++ STL-Funktion ERase () werden Elemente aus einem Listenbehälter entfernt. Der gelieferte Listenbehälter kann verwendet werden, um ein einzelnes Element oder eine Gruppe von Elementen mit dieser Funktion zu entfernen.

Syntax:

# Iterator LIST_NAME.löschen (Iteratorposition)

Parameter:

Wir übergeben zwei Parameter.

Position: Wenn ein einzelnes Element mit der Funktion gelöscht werden soll, wird dieser Parameter verwendet. Dieser Parameter bezieht sich auf einen Iterator, der das Element aus dem Listenbehälter identifiziert, der gelöscht werden muss.

Erstens, letztes: Die Begriffe „Parameter zuerst“ und „Parameter zuletzt“ beziehen sich auf den Iterator, der auf die ersten und letzten Elemente im Bereich zeigt, die gelöscht werden müssen. Dies beseitigt alle Elemente des Bereichs, einschließlich des Elements, auf das der Iterator zuerst hinwies, aber das Element, auf das der Iterator hinwies.

LISTE :: AUFTRAG ()

Um einer Liste Werte zuzuweisen, verwenden Sie die integrierte C ++ STL-Methode zugewiesen () ().

Syntax:

# Listennamen.zuweisen (zählen, Wert)

Parameter:

Zählung: Die Anzahl der Werte, die zum Listenamen hinzugefügt werden müssen.

Wert: Beginnend mit dem anfänglichen Element wird dieser Wert eine bestimmte Anzahl von Male zugewiesen. Wenn die Liste bereits einige Elemente enthält, wird das im Parameterwert gelieferte Element ihren Platz einnehmen. Der Datentyp dieses Parameters muss dem Datentyp des Listennamens übereinstimmen.

Liste :: remove ()

Es eliminiert Elemente, die an einem Wert bewertet werden. Es nimmt einen Wert als Eingabe an und entfernt alle Elemente aus dem Listencontainer, dessen Werte dem als Parameter der Funktion übergebenen Wert übereinstimmen.

Syntax:

# Listennamen.entfernen (val)

Liste :: remove ()

Die Methode von REME () () wird verwendet, um Einträge aus einer Liste zu beseitigen, die einem als Funktionsparameter angegebenen Wert entspricht.

Syntax:

# Listennamen.entfernen (Wert)

Liste :: Remove_if ()

Die Funktion "If () entfernen () wird verwendet, um alle Einträge aus einer Liste zu beseitigen, die einen Zustand oder ein Prädikat erfüllen, das als Argument gesendet wird.

Syntax:

# Listennamen.remove_if (Prädikat)

Liste :: reverse ()

Ein Listencontainer kann mit der integrierten Methode reverse () im C ++ stl umgekehrt werden. Es ändert die Reihenfolge der Liste der Containerelemente.

Syntax:

# Listennamen.umkehren()

Liste :: size ()

Mit anderen Worten, es wird verwendet, um die Größe des Listencontainers zu bestimmen.

Syntax:

# Listennamen.Größe();

Liste :: Größen Sie die Größe ()

Es passt die Größe des Listenbehälters so an genau „n“ -Anemente an, wenn die Zahl „n“ als Parameter angegeben ist.

Syntax:

# Listennamen.Größenänderung (int n, value_type val)

Liste :: sort ()

Die Elemente des Containers können sortiert werden, indem sie mit der Sort () -Funktion verändert werden.

Syntax:

# Listennamen.Sortieren()

Liste :: max_size ()

Max Size () gibt die meisten Elemente zurück, die ein Listenbehälter aufnehmen kann.

Syntax:

# Listennamen.maximale Größe()

Liste :: einzigartig ()

Eliminiert alle aufeinanderfolgenden Mitglieder aus der Liste, die Duplikate sind. Es funktioniert nur mit sortierten Listen.

Syntax:

# Listennamen.Eindeutig (BinaryPredicate Name)

Liste :: SWAP ()

Durch die Verwendung dieser Funktion kann der Inhalt von zwei Listen derselben Größe und Typ ausgetauscht werden.

Syntax:

# LISTNAME1.Swap (ListName2)

Liste :: Clear ()

Die Größe des Listenbehälters wird auf 0 reduziert, wenn alle Elemente unter Verwendung der Funktion clear () entfernt werden.

Syntax:

# Listennamen.klar()

Liste :: Operator =

Mit diesem Bediener werden die vorhandenen Inhalte des Containers ersetzt und neue Zuordnungen gegeben. Darüber hinaus wird die Größe an den neuen Inhalt anpasst.

Syntax:

# ListName1 = (ListName2)

In diesem Artikel werden wir verschiedene Abbildungen der Listenfunktionen erläutern.

Beispiel Nr. 1

Hier sehen wir, wie Listenfunktionen funktionieren.

#enthalten
#enthalten
#enthalten
int main ()
std :: listmy_list = 50, 10, 30;
für (int y: my_list)
std :: Cout<< y << '\n';

In diesem Code integrieren wir Header -Dateien, und . Dann nennen wir die main () -Funktion. Beginnen wir die Codierung in der Funktion main (). Fügen Sie in der Funktion main () meine Liste hinzu und übergeben Sie die verschiedenen Werte. Verwenden Sie die Schleife "für" und initialisieren Sie die "y".

Beispiel Nr. 2

In diesem Fall sehen wir, wie Sie den Wert des Iterators unter Verwendung von Listenfunktionen verringern können.

#enthalten
#enthalten
Verwenden von Namespace STD;
int main (void)
Listl;
Liste l0 = 0, 0, 0;
Liste L9 (L0.begin (), l0.Ende());
Liste L15 (Move (L0));
Cout<< "Size of list 0: " << l0.size() <Cout<< "List 9 contents: " <für (auto it = l9.Start(); Es != l9.Ende(); ++ es)
Cout<< *it <Cout<< "List 15 contents: " <für (auto it = l15.Start(); Es != L15.Ende(); ++ es)
Cout<< *it <Rückkehr 0;

Hier fügen wir Header -Dateien hinzu, . Die Header -Datei befasst sich mit der Verwendung von C ++ - Listenfunktionen. Dann verwenden wir den Namespace. Zusammen mit diesem haben wir die Main () -Funktion bezeichnet. Zuerst haben wir die Liste initialisiert; Dann haben wir die Werte übergeben. Wir fügen fügen Sie begin () -Funktion hinzu, um die 9 Elemente davon zu erhalten. Als nächstes fügen wir Move (), 15 Elemente aus dieser Move () -Funktion hinzu. Wir haben "Cout" verwendet, um die Anweisung "Größe der Liste 0" zu drucken. Und der nächste "Cout" druckt die Anweisung "Liste 15 Inhalte" aus. Am Ende verwenden wir die „für“ -Schloops, und dann nimmt der Wert des Iterators ab, nachdem all dieser Befehl „return0“ eingegeben wurde.

Wir erwerben diese Art von Ergebnis, nachdem wir den oben genannten Code ausgeführt haben.

Abschluss

Zuerst haben wir über C ++ - Listenfunktionen gesprochen. Dann beobachten wir, dass mehrere C ++ - Funktionen für die Liste gelten. Wir haben verschiedene C ++ - Listenfunktionen und auch ihre Syntax definiert. In diesem Artikel haben wir verschiedene Codes ausgeführt, die C ++ - Listenfunktionen enthalten. In der ersten Abbildung verwenden wir eine verknüpfte Liste und übergeben die Parameter. Im zweiten Beispiel wenden wir die Funktionsliste an und übergeben die Parameter in jeder Funktion.