Comment ajouter de nombreuses chaînes en c ++
Que je sais que C++ permet seulement d'ajouter 2 cordes en même temps, je.e:
s = s1 + s2
Mais comment puis-je ajouter plusieurs chaînes? Comme:
s = s1 + s2 + s3 + s4 + ... + sn
source d'informationauteur root
Vous devez vous connecter pour publier un commentaire.
Si vous essayez d'ajouter une chaîne d'objets de la classe std::string, cela devrait fonctionner.
OU
Tout d'abord, vous pouvez faire de +sn chose de bien. Si il va prendre un
exponentiellequadradic(voir commentaires) de temps en supposant que vous êtes en utilisantstd::basic_string<t>
chaînes de caractères en C++03.Vous pouvez utiliser le
std::basic_string<t>::append
de concert avecstd::basic_string<t>::reserve
pour concaténer votre chaîne en O(n) fois.EDIT: Par exemple
fonctionnera bien qu'il pourrait créer un grand nombre de temporaires (un bon compilateur d'optimisation devrait aider) car il va effectivement être interprété comme:
Une autre façon qui est garanti de ne pas créer temporaires est:
std::ostringstream
est de construire pour cela, voir l'exemple ici. C'est facile:Utiliser un modèle pour ajouter des chaînes, char* et char pour former une chaîne
strlen:-
ajout de chaînes de
principal exemple