Maison > développement back-end > C++ > le corps du texte

Programme C++ pour convertir la liste en ensemble

WBOY
Libérer: 2023-09-08 09:53:03
avant
1484 Les gens l'ont consulté

Programme C++ pour convertir la liste en ensemble

Les listes en C++ sont des conteneurs comme les vecteurs, mais l'implémentation des listes est basée sur le double Listes chaînées comparées aux implémentations de tableaux de vecteurs. La liste ne comprend généralement pas Les éléments de la liste sont répartis dans des positions consécutives mémoire. Les listes fournissent partout le même fonctionnement à temps constant, ce qui est le principal Utilisez les fonctionnalités de liste. D'un autre côté, une collection est un conteneur qui contient des valeurs uniques Certains types et tous les éléments sont triés par ordre croissant. Ces deux conteneurs sont Différent, mais il existe plusieurs façons de convertir une liste en un ensemble. Nous discutons de la méthode Détails ci-dessous.

Méthode simple

La manière la plus simple et la plus naïve est de définir deux conteneurs différents, l'un du type liste ; L'autre est un type set, qui copie chaque élément de la liste dans une collection.

Grammaire

list<int> myList;
set<int> mySet;
for ( int const &val: myList ) {
   mySet.insert(val);
}
Copier après la connexion

Algorithme

  • Obtenez une entrée dans la liste.
  • Parcourez chaque élément de la liste et insérez-les dans la collection.
  • Affichez le contenu de la collection.

Exemple

#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;
}
Copier après la connexion

Sortie

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 
Copier après la connexion

Utiliser le constructeur de plage

Les pointeurs de début et de fin de la liste doivent être fournis en paramètres du constructeur Utilisez des constructeurs de plages lors de la création de collections.

Grammaire

list<int> myList;
set<int> mySet(begin(myList), end(myList));
Copier après la connexion

Algorithme

  • Obtenez une entrée dans la liste.

  • Lors de la création d'une collection, transmettez les pointeurs de début et de fin de la liste au constructeur de plage de la collection.

  • Affichez le contenu de la collection.

Exemple

#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;
}
Copier après la connexion

Sortie

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 
Copier après la connexion

Utilisez la fonction de copie

La fonction de copie en C++ permet de copier des données d'un conteneur à un autre. Pour utiliser La fonction de copie, les pointeurs de début et de fin de la liste doivent être passés en paramètres vers les fonctions et les pointeurs vers les collections et le début des collections au sein des collections Fonction d'insertion.

Grammaire

list<int> myList;
set<int> mySet;
copy(begin(myList), end(myList), inserter(mySet, begin(mySet)));
Copier après la connexion

Algorithme

  • Obtenez une entrée dans la liste.

  • Définissez une nouvelle collection.

  • Passez les pointeurs de début et de fin de la liste en paramètres à la fonction de copie ainsi que la collection et le pointeur de début de collection dans la fonction d'insertion.

  • Affiche le contenu d'une collection.

Exemple

#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;
}
Copier après la connexion

Sortie

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 
Copier après la connexion

Conclusion

Lorsque nous utilisons des ensembles, nous ne pouvons pas ajouter ou stocker des éléments en double dans l'ensemble, mais Permet de stocker les éléments en double dans une structure de données de type liste ou tableau. avoir Dans certains cas, il est préférable d’utiliser un ensemble plutôt qu’une liste. Ces conversions Les techniques que nous avons vues auparavant peuvent vraiment aider à cet égard.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal