C ++: Der String Container

Die häufigste Form eines C ++ Arrays ist die Null-terminierte Zeichenfolge verwendet, um Text anzuzeigen, die deutlich zeigt, sowohl die Vor- und Nachteile des Arrays. Überlegen Sie, wie einfach die folgende angezeigt:

cout lt; lt; "Dies ist ein String" -

Aber die Dinge gehen sauer schnell, wenn Sie versuchen, eine Operation auszuführen, auch so einfach wie zwei dieser nullterminierten Strings verketten:

char * concatCharString (const char * s1, const char * s2) {int length = strlen (s1) + strlen (s2) + 1-char * s = new char [Länge] -strcpy (s, s1) -strcat (s , s2) -return s-}

Die STL stellt ein Schnur Container Anzeigestrings zu handhaben. Das Schnur Klasse bietet eine Reihe von Operationen (einschließlich überladene Operatoren) die Manipulation von Zeichenketten zu vereinfachen. Das Gleiche concat () Operation kann wie folgt ausgeführt werden unter Verwendung von Schnur Objekte:

String concat (const string s1, const string s2) {return s1 + s2-}

Im Kern a Schnur ist immer noch ein Array. Die von der STL bereitgestellt machen es leichter zu manipulieren Schnur Objekte, aber nicht so viel schneller. Einsetzen in die Mitte einer Schnur noch geht um den Inhalt des Arrays zu bewegen.

Das Schnur Klasse ist eigentlich eine Instanziierung der Klassenvorlage basic_class mit T einstellen verkohlen. Das wstring Klasse ist ein anderer Name für basic_class . Diese Klasse bietet die gleichen Zeichen Manipulationen hier gezeigt für Wide-Strings.

Die C ++ '11 Definition fügt u16string und u32string, der sich die String-Manipulation Methoden in UTF-16 und UTF-32 Zeichenketten. Alle Vergleiche zwischen zwei String-Objekte sind lexikalisch durchgeführt - das heißt, welcher der beiden Strings im Wörterbuch der aktuellen Sprache zuerst erscheinen würde.

Menü