Comment fusionner deux std::vector en C++ ? Les bonnes méthodes de concaténation
Bonjour à tous ! J'ai récemment commencé à apprendre le C++ et j'ai rencontré un problème qui semble simple, mais je n'arrive pas à trouver de solution élégante. Je dois fusionner deux std::vector en un seul. Par exemple, j'ai :
```cpp
std::vector vec1 = {1, 2, 3, 4, 5};
std::vector vec2 = {6, 7, 8, 9, 10};
```
Je veux obtenir un troisième vecteur `result` qui contient tous les éléments de `vec1`, puis tous ceux de `vec2`. Soit : `{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}`.
Le problème est que j'ai essayé plusieurs approches, mais elles me semblent soit incorrectes, soit trop lourdes. Par exemple :
1. J'ai essayé d'utiliser `vec1.insert(vec1.end(), vec2.begin(), vec2.end())`, mais cela modifie le vecteur original `vec1`, alors que je veux conserver les deux vecteurs d'origine inchangés.
2. J'ai essayé d'écrire une boucle `for (int num : vec2) { vec1.push_back(num); }`, mais cela modifie aussi `vec1`.
3. J'ai essayé de créer `result` et d'utiliser `std::copy`, mais je me suis embrouillé avec les itérateurs.
Pouvez-vous me dire quelle est la meilleure
No answers yet.
Connectez-vous pour laisser une réponse