Maison >développement back-end >C++ >Programme C++ pour convertir un vecteur en liste

Programme C++ pour convertir un vecteur en liste

WBOY
WBOYavant
2023-09-10 08:49:031394parcourir

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

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

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

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

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

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 

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

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

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 

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer