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.
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.
vector <int> ip; list <int> op( ip.begin(), ip.end() );
#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; }
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
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.
vector <int> ip; list <int> op(); op.assign(ip.begin(), ip.end());
#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; }
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
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.
vector <int> ip; list <int> op(); op.insert(op.begin(), ip.begin(), ip.end());
#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; }
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
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!