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

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

WBOY
WBOYnach vorne
2023-09-08 09:53:031494Durchsuche

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);
}

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;
}

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 

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));

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;
}

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 

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)));

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;
}

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 

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen