Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele

Was ist std::list?

In C++ ist std::list ein Sequenzcontainer, der Elemente als doppelt verkettete Liste speichert. Diese Struktur ermöglicht das Einfügen oder Entfernen von Elementen an beliebiger Position in konstanter Zeit, während eine Iteration in beide Richtungen möglich ist. Obwohl kein schneller wahlfreier Zugriff wie bei std::vector geboten wird, glänzt std::list in Szenarien mit häufigen Einfügungen oder Löschungen.

Der Container verwaltet den Speicher automatisch über einen Allokator, sodass er zur Laufzeit an beiden Enden wachsen oder schrumpfen kann.

Warum std::list verwenden?

Eine Liste definieren

Zur Nutzung von std::list muss der Header <list> eingebunden werden:

#include <list> // Template-Definition
// template<class T, class Alloc = std::allocator<T>> class list;

Parameter:

Beispiel 1: Grundlegende Iteration

#include <iostream>
#include <list>
int main() {
    std::list<int> my_list{12, 5, 10, 9};
    for (int x : my_list) {
        std::cout << x << '\n';
    }
}

Ausgabe:

std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele

Häufige std::list-Operationen

FunktionBeschreibung
insert()Fügt ein Element vor der Iterator-Position ein.
push_back()Fügt ein Element am Ende an.
push_front()Fügt ein Element am Anfang an.
pop_front()Entfernt das erste Element.
size()Gibt die Anzahl der Elemente zurück.
front()Zugriff auf das erste Element.
back()Zugriff auf das letzte Element.
reverse()Kehrt die Reihenfolge der Elemente um.
merge()Führt zwei sortierte Listen zusammen.

Konstruktoren

Beispiel 2: Konstruktor-Varianten

#include <iostream>
#include <list>
int main() {
    std::list<int> l; // leer
    std::list<int> l1{10, 20, 30};
    std::list<int> l2(l1.begin(), l1.end()); // Bereichskopie
    std::list<int> l3(std::move(l1)); // Move
    std::cout << "Größe von l: " << l.size() << '\n';
    std::cout << "Inhalt von l2:\n";
    for (int x : l2) std::cout << x << '\n';
    std::cout << "Inhalt von l3:\n";
    for (int x : l3) std::cout << x << '\n';
}

Ausgabe:

std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele

Containereigenschaften

Elemente einfügen

Verwenden Sie push_front, push_back oder insert, um Elemente hinzuzufügen.

Beispiel 3: Gemischte Einfügungen

#include <algorithm>
#include <iostream>
#include <list>
int main() {
    std::list<int> my_list{12, 5, 10, 9};
    my_list.push_front(11); // vorne
    my_list.push_back(18);  // hinten
    auto it = std::find(my_list.begin(), my_list.end(), 10);
    if (it != my_list.end()) {
        my_list.insert(it, 21); // vor 10
    }
    for (int x : my_list) std::cout << x << '\n';
}

Ausgabe:

std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele

Elemente löschen

Mit erase lassen sich einzelne Elemente oder Bereiche entfernen.

Beispiel 4: Erase-Demonstration

#include <iostream>
#include <list>
int main() {
    std::list<int> my_list{12, 5, 10, 9};
    std::cout << "Vor dem Löschen:\n";
    for (int x : my_list) std::cout << x << '\n';
    my_list.erase(my_list.begin()); // erstes Element entfernen
    std::cout << "Nach dem Löschen:\n";
    for (int x : my_list) std::cout << x << '\n';
}

Ausgabe:

std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele

Wichtigste Erkenntnisse

C Sprache

  1. C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
  2. C++ do‑while‑Schleife: Syntax, Praxisbeispiele und verschachtelte Schleifen
  3. C++ switch‑case meistern: Syntax, Einsatz und Praxisbeispiele
  4. C++ Dynamische Array‑Allokation: Praktischer Leitfaden mit Code‑Beispielen
  5. C++ Zeiger meistern: Konzepte, Beispiele & praktische Anwendungen
  6. C++ Operator‑Overloading: Praktischer Leitfaden mit Code‑Beispielen
  7. C++ Structs erklärt mit praktischem Beispiel
  8. C++-Funktionen erklärt: Mit praktischen Code-Beispielen
  9. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle
  10. Python Counter in collections: Effizientes Zählen, Aktualisieren und arithmetische Operationen