Video: Nuovo Corso C++11 ITA 106: enum ed enum class (c++11) 2024
Die häufigste Form eines C ++ - Arrays ist die nullterminierte Zeichenkette, die zur Anzeige von Text verwendet wird. Vorteile und Nachteile des Arrays. Bedenken Sie, wie einfach folgendes erscheint:
cout << "this is a string";
Aber wenn Sie versuchen, eine Operation auszuführen, die so einfach ist wie die Verkettung von zwei dieser nullterminierten Zeichenfolgen, werden Sie schnell sauer:
char * concatCharString (const char * s1, const char * s2) {int length = strlen (s1) + strlen (s2) + 1; char * s = neue Char [Länge]; strcpy (s, s1); Strcat (s, s2); return s;}
Die AWL stellt einen String Container zur Verfügung, um Display-Strings zu verarbeiten. Die string -Klasse bietet eine Reihe von Operationen (einschließlich überladener Operatoren), um die Bearbeitung von Zeichenketten zu vereinfachen. Die gleiche concat () - Operation kann wie folgt mit string -Objekten ausgeführt werden:
string concat (const string & s1, const string & s2) {return s1 + s2;}
Im Kern ist ein String immer noch ein Array. Die von der AWL bereitgestellten Operationen erleichtern die Bearbeitung von String Objekten, jedoch nicht wesentlich schneller. Das Einfügen in die Mitte einer Zeichenfolge beinhaltet immer noch das Verschieben der Inhalte von Arrays.
Die Klasse string ist eigentlich eine Instanziierung der Klassenvorlage basic_class, wobei T auf char gesetzt ist. Die wstring-Klasse ist ein anderer Name für basic_class . Diese Klasse bietet die gleichen Zeichenmanipulationen, die hier für breite Strings gezeigt werden.
Die C ++ '11-Definition fügt u16string und u32string , hinzu, wodurch die String-Manipulationsmethoden auf UTF-16- und UTF-32-Zeichenfolgen erweitert werden. Alle Vergleiche zwischen zwei String-Objekten werden lexikographisch durchgeführt - das heißt, welche der beiden Strings zuerst im Wörterbuch der aktuellen Sprache erscheinen würde.