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

Programme C++ pour convertir un vecteur en liste

WBOY
Libérer: 2023-09-10 08:49:03
avant
1300 Les gens l'ont consulté

Programme C++ pour convertir un vecteur en liste

Les vecteurs en C++ sont des tableaux dynamiques qui peuvent contenir tout type de données, définies par l'utilisateur ou primitives. Dynamique signifie que la taille du vecteur peut augmenter ou diminuer en fonction des opérations. Les vecteurs prennent en charge diverses fonctions et la manipulation des données est très simple. D'un autre côté, une liste est le même conteneur qu'un vecteur, mais par rapport à l'implémentation de vecteurs dans un tableau, l'implémentation de liste est basée sur une liste doublement chaînée. Les listes fournissent partout la même opération à temps constant, ce qui constitue la principale caractéristique de l'utilisation des listes. Examinons les principales méthodes de conversion de vecteurs en listes.

Utiliser le constructeur de plage

Pour utiliser le constructeur de plage, vous devez transmettre les pointeurs de début et de fin du vecteur comme paramètres au constructeur lors de la création de la liste.

Grammaire

vector <int> ip;
list <int> op( ip.begin(), ip.end() );
Copier après la connexion

Algorithme

  • Stockez l'entrée dans un vecteur.
  • Passez les pointeurs de début et de fin du vecteur au constructeur de plage de la liste. ≪/li>
  • Afficher le contenu de la liste.

Exemple

#include <iostream>
#include <vector>
#include <list>

using namespace std;
list <int> solve( vector <int> ip) {
   //initialise the list
   list <int> op( ip.begin(), ip.end() );
   return op;
}

int main() {
   vector <int> ip( { 15, 20, 65, 30, 24, 33, 12, 29, 36, 58, 96, 88, 30, 71 } );
   list <int> op = solve( ip );

   //display the input
   cout<< "The input vector is: ";
   for( int i : ip ) {
      cout<< i << " ";
   }

   //display the output
   cout << "\nThe output list is: ";
   for( int j : op ) {
      cout << j << " ";
   }
   return 0;
}
Copier après la connexion

Sortie

The input vector is: 15 20 65 30 24 33 12 29 36 58 96 88 30 71 
The output list is: 15 20 65 30 24 33 12 29 36 58 96 88 30 71
Copier après la connexion

Utilisez la fonction d'attribution de std :: list

L'utilisation de std::list est similaire à l'utilisation du constructeur de plage. Nous passons les pointeurs de début et de fin du vecteur de la même manière que le constructeur de plage.

Grammaire

vector <int> ip;
list <int> op();
op.assign(ip.begin(), ip.end());
Copier après la connexion

Algorithme

  • Stockez l'entrée dans un vecteur.
  • Définissez une nouvelle liste.
  • Passez les pointeurs de début et de fin du vecteur à la fonction d'affectation de la liste
  • Afficher le contenu de la liste.

Exemple

#include <iostream>
#include <vector>
#include <list>

using namespace std;
list <int> solve( vector <int> ip) {

   //initialise the list
   list <int> op;
   op.assign( ip.begin(), ip.end() );
   return op;
}

int main() {
   vector <int> ip( { 40, 77, 8, 65, 92 ,13, 72, 30, 67, 12, 88, 37, 18, 23, 41} );
   list <int> op = solve( ip );

   //display the input
   cout<< "The input vector is: ";
   for( int i : ip ) {
      cout<< i << " ";
   }

   //display the output
   cout << "\nThe output list is: ";
   for( int j : op ) {
      cout << j << " ";
   }
   return 0;
}
Copier après la connexion

Sortie

The input vector is: 40 77 8 65 92 13 72 30 67 12 88 37 18 23 41 
The output list is: 40 77 8 65 92 13 72 30 67 12 88 37 18 23 41 
Copier après la connexion

Utiliser la fonction d'insertion de liste

Nous pouvons insérer des données du vecteur dans la liste en utilisant la fonction d'insertion de la liste. Les listes nécessitent des pointeurs vers le début de la liste et des pointeurs vers le début et la fin du vecteur.

Grammaire

vector <int> ip;
list <int> op();
op.insert(op.begin(), ip.begin(), ip.end());
Copier après la connexion

Algorithme

  • Stockez l'entrée dans un vecteur.
  • Définissez une nouvelle liste.
  • Passez le pointeur de début de la liste ainsi que les pointeurs de début et de fin
  • Un vecteur de fonctions d'insertion de liste.
  • Afficher le contenu de la liste.

Exemple

#include <iostream>
#include <vector>
#include <list>

using namespace std;
list <int> solve( vector <int> ip) {

   //initialise the list
   list <int> op;
   op.insert( op.begin(), ip.begin(), ip.end() );
   return op;
}

int main() {
   vector <int> ip( { 30, 82, 7, 13, 69, 53, 70, 19, 73, 46, 26, 11, 37, 83} );
   list <int> op = solve( ip );

   //display the input
   cout<< "The input vector is: ";

   for( int i : ip ) {
      cout<< i << " ";
   }

   //display the output
   cout << "\nThe output list is: ";
   for( int j : op ) {
      cout << j << " ";
   }
   return 0;
}
Copier après la connexion

Sortie

The input vector is: 30 82 7 13 69 53 70 19 73 46 26 11 37 83 
The output list is: 30 82 7 13 69 53 70 19 73 46 26 11 37 83 
Copier après la connexion

Conclusion

En C++, la conversion d'un vecteur en liste présente l'avantage d'une complexité opérationnelle uniforme partout dans la liste. Il existe plusieurs façons de convertir un vecteur en liste. Cependant, nous n’avons mentionné ici que les méthodes les plus simples et les plus rapides.

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!

Étiquettes associées:
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!