Heim > Backend-Entwicklung > C++ > C++-Programm zum Konvertieren einer Liste in eine Menge

C++-Programm zum Konvertieren einer Liste in eine Menge

WBOY
Freigeben: 2023-09-08 09:53:03
nach vorne
1512 Leute haben es durchsucht

C++-Programm zum Konvertieren einer Liste in eine Menge

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.

Einfache Methode

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.

Grammatik

list<int> myList;
set<int> mySet;
for ( int const &val: myList ) {
   mySet.insert(val);
}
Nach dem Login kopieren

Algorithmus

  • Eingabe in die Liste erhalten.
  • Durchlaufen Sie jedes Element in der Liste und fügen Sie es in die Sammlung ein.
  • Zeigen Sie den Inhalt der Sammlung.

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

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 
Nach dem Login kopieren

Bereichskonstruktor verwenden

Die Start- und Endzeiger der Liste müssen als Parameter des Konstruktors bereitgestellt werden Verwenden Sie beim Erstellen von Sammlungen Bereichskonstruktoren.

Grammatik

list<int> myList;
set<int> mySet(begin(myList), end(myList));
Nach dem Login kopieren

Algorithmus

  • 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.

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

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 
Nach dem Login kopieren

Verwenden Sie die Kopierfunktion

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.

Grammatik

list<int> myList;
set<int> mySet;
copy(begin(myList), end(myList), inserter(mySet, begin(mySet)));
Nach dem Login kopieren

Algorithmus

  • 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.

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

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 
Nach dem Login kopieren

Fazit

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage