Listen in C++ sind Container wie Vektoren, aber die Implementierung von Listen basiert auf Double Verknüpfte Listen im Vergleich zu Array-Implementierungen von Vektoren. Die Liste enthält im Allgemeinen keine Die Elemente in der Liste werden an aufeinanderfolgenden Positionen verteilt Erinnerung. Listen bieten überall in ihnen die gleiche konstante Zeitoperation, was das Wichtigste ist Nutzen Sie Listenfunktionen. Andererseits ist eine Sammlung ein Container, der eindeutige Werte enthält Einige Typen und alle Elemente werden in aufsteigender Reihenfolge sortiert. Diese beiden Container sind Anders, aber es gibt mehrere Möglichkeiten, eine Liste in eine Menge umzuwandeln. Wir besprechen die Methode Details weiter unten.
Der einfachste und naivste Weg besteht darin, zwei verschiedene Container zu definieren; Der andere ist ein Set-Typ, der jedes Element der Liste in eine Sammlung kopiert.
list<int> myList; set<int> mySet; for ( int const &val: myList ) { mySet.insert(val); }
#include <iostream> #include <set> #include <list> using namespace std; int main(){ //initializing the list list<int> myList = { 10, 30, 65, 98, 76, 44, 32, 73, 81, 29 }; set<int> mySet; cout<< "The list contents are:" << endl; //displaying the list contents for ( int const &val: myList ) { cout << val << ' '; } //copying the elements of the list for ( int const &val: myList ) { mySet.insert(val); } cout << "\nThe set contents are:" << endl; for ( int const &val: mySet ) { cout << val << ' '; } return 0; }
The list contents are: 10 30 65 98 76 44 32 73 81 29 The set contents are: 10 29 30 32 44 65 73 76 81 98
Die Start- und Endzeiger der Liste müssen als Parameter des Konstruktors bereitgestellt werden Verwenden Sie beim Erstellen von Sammlungen Bereichskonstruktoren.
list<int> myList; set<int> mySet(begin(myList), end(myList));
Eingabe in die Liste erhalten.
Übergeben Sie beim Erstellen einer Sammlung die Start- und Endzeiger der Liste an den Bereichskonstruktor der Sammlung.
Zeigen Sie den Inhalt der Sammlung.
#include <iostream> #include <set> #include <list> using namespace std; int main(){ //initializing the list list<int> myList = { 30, 70, 56, 89, 67, 44, 23, 37, 18, 92 }; //using the range constructor set<int> mySet(begin(myList), end(myList)); cout<< "The list contents are:" << endl; //displaying the list contents for ( int const &val: myList ) { cout << val << ' '; } cout << "\nThe set contents are:" << endl; for ( int const &val: mySet ) { cout << val << ' '; } return 0; }
The list contents are: 30 70 56 89 67 44 23 37 18 92 The set contents are: 18 23 30 37 44 56 67 70 89 92
Die Kopierfunktion in C++ ermöglicht das Kopieren von Daten von einem Container in einen anderen. Zu verwenden Kopierfunktion müssen die Start- und Endzeiger der Liste als Parameter übergeben werden auf Funktionen und Zeiger auf Sammlungen und den Beginn von Sammlungen innerhalb von Sammlungen Inserter-Funktion.
list<int> myList; set<int> mySet; copy(begin(myList), end(myList), inserter(mySet, begin(mySet)));
Eingabe in die Liste erhalten.
Definieren Sie eine neue Sammlung.
Übergeben Sie die Start- und Endzeiger der Liste als Parameter an die Kopierfunktion sowie die Sammlung und den Zeiger auf den Anfang der Sammlung in der Einfügefunktion.
Zeigt den Inhalt einer Sammlung.
#include <iostream> #include <set> #include <list> using namespace std; int main(){ //initializing the list list<int> myList = { 33, 74, 52, 84, 65, 47, 28, 39, 13, 96 }; set<int> mySet; //using the copy function copy(begin(myList), end(myList), inserter(mySet, begin(mySet))); cout<< "The list contents are:" << endl; //displaying the list contents for ( int const &val: myList ) { cout << val << ' '; } cout << "\nThe set contents are:" << endl; for ( int const &val: mySet ) { cout << val << ' '; } return 0; }
The list contents are: 33 74 52 84 65 47 28 39 13 96 The set contents are: 13 28 33 39 47 52 65 74 84 96
Wenn wir Sets verwenden, können wir dem Set keine doppelten Elemente hinzufügen oder speichern, aber Ermöglicht die Speicherung doppelter Elemente in einer Listen- oder Array-ähnlichen Datenstruktur. haben In manchen Fällen ist es besser, eine Menge anstelle einer Liste zu verwenden. Diese Umbauten Die Techniken, die wir zuvor gesehen haben, können dabei wirklich helfen.
Das obige ist der detaillierte Inhalt vonC++-Programm zum Konvertieren einer Liste in eine Menge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!