C ++: le conteneur de chaîne

La forme la plus commune d'un tableau C ++ est la chaîne de caractères terminée par NULL utilisée pour afficher du texte, ce qui montre clairement les avantages et les inconvénients de la matrice. Voyez comment facile la suivante apparaît:

cout lt; lt; "Ceci est une chaîne" -

Mais les choses tournent mal rapidement lorsque vous essayez d'effectuer une opération, même aussi simple que la concaténation de deux de ces chaînes à zéro terminal:




char * concatCharString (const char * s1, const char * s2) {int length = strlen (S1) + = new char [longueur] -strcpy strlen (s2) + 1-char * s (s, s1) -strcat (s , s2) -Retour s-}

La STL fournit une chaîne récipient pour gérer les chaînes d'affichage. La chaîne classe fournit un certain nombre d'opérations (y compris les opérateurs surchargés) pour simplifier la manipulation des chaînes de caractères. Le même concat () opération peut être effectuée de la manière suivante en utilisant chaîne objets:

chaîne concat (const string s1, const string s2) {return S1 + S2}

À la base, un chaîne est toujours un tableau. Les opérations visées par la STL rendre plus facile à manipuler chaîne objets, mais pas que beaucoup plus rapide. Insertion dans le milieu d'un chaîne implique toujours en mouvement le contenu de tableaux autour.

La chaîne classe est en fait une instanciation du modèle de classe basic_class avec T ajuster à carboniser. La wstring classe est un autre nom pour basic_class. Cette classe fournit les mêmes manipulations de caractères présentés ici pour les chaînes étendues.

La définition C ++ ajoute '11 u16string et u32string, qui étend les méthodes de manipulation de chaîne en UTF-16 et UTF-32 chaînes de caractères. Toutes les comparaisons entre deux objets de chaîne sont effectuées lexicographique - dire qui des deux chaînes serait apparaître en premier dans le dictionnaire de la langue courante.


» » » » C ++: le conteneur de chaîne