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.
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.
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
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.
list<int> myList; set<int> mySet(begin(myList), end(myList));
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.
#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
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.
list<int> myList; set<int> mySet; copy(begin(myList), end(myList), inserter(mySet, begin(mySet)));
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.
#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
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!