Maison >développement back-end >C++ >Comment puis-je ajouter efficacement un vecteur à un autre en C ?
Ajout de vecteurs sans effort
Dans le monde de la manipulation de vecteurs, il est souvent nécessaire d'ajouter un vecteur à la fin d'un autre. Même si parcourir les éléments et effectuer des insertions individuelles peut sembler une approche évidente, nous sommes là pour proposer une solution plus efficace et plus élégante.
Considérez l'extrait de code suivant :
vector<int> a; vector<int> b;
En supposant que les deux vecteurs comportent environ 30 éléments, comment pouvons-nous ajouter le contenu du vecteur b à la fin du vecteur a ?
La méthode de la force brute implique d'utiliser vector
Au lieu de cela, nous introduisons la méthode la plus efficace :
a.insert(a.end(), b.begin(), b.end());
Alternativement, pour C 11 et supérieur, considérez cette variante :
a.insert(std::end(a), std::begin(b), std::end(b));
Ces méthodes exploitent la fonction std::insert(), qui prend trois arguments : un itérateur jusqu'au point d'insertion, un itérateur au début de la plage source et un itérateur à la fin de la plage source. En fournissant les itérateurs appropriés, nous pouvons ajouter de manière transparente le contenu du vecteur b au vecteur a.
La deuxième variante de l'extrait de code utilise des itérateurs génériques, ce qui la rend également applicable à un tableau b. Cependant, cette approche nécessite C 11 ou une version ultérieure.
Pour les types définis par l'utilisateur, nous pouvons utiliser la recherche dépendante des arguments (ADL) pour simplifier davantage le code :
using std::begin, std::end; a.insert(end(a), begin(b), end(b));
Avec ces élégants solutions, l'ajout de vecteurs devient une tâche sans effort, améliorant considérablement l'efficacité et la maintenabilité de votre code.
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!