"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment imploser avec élégance un vecteur de chaînes ?

Comment imploser avec élégance un vecteur de chaînes ?

Publié le 2024-11-08
Parcourir:354

How to Elegantly Implode a Vector of Strings?

Solutions élégantes pour imploser un vecteur de chaînes

L'implosion d'un vecteur de chaînes en une seule chaîne est une opération courante en programmation. Bien qu'il existe différentes méthodes, cet article explore deux solutions élégantes pour maximiser la lisibilité et l'efficacité.

La première approche consiste à utiliser une fonction définie par l'utilisateur. Voici l'extrait de code :

static std::string& implode(const std::vector<:string>& elems, char delim, std::string& s) {
    for (std::vector<:string>::const_iterator ii = elems.begin(); ii != elems.end();   ii) {
        s  = (*ii);
        if (ii   1 != elems.end()) {
            s  = delim;
        }
    }

    return s;
}

Cette fonction prend un vecteur de chaînes, un délimiteur et une référence à une variable de chaîne. Il parcourt le vecteur, en ajoutant chaque élément à la variable de chaîne et en ajoutant le délimiteur si nécessaire.

Cependant, une solution plus élégante consiste à exploiter la puissante bibliothèque Boost :

#include 
...
std::string joinedString = boost::algorithm::join(elems, delim);

Cette approche utilise la fonction boost::algorithm::join, qui prend une séquence de chaînes et un délimiteur comme arguments et renvoie une seule chaîne.

L'utilisation de Boost offre une concision et une lisibilité améliorées tout en garantissant les avantages en termes de performances de l'approche d'itération vectorielle. De plus, cela augmente la portabilité du code, car Boost est largement pris en charge sur différentes plates-formes.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729728914. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3