string::const_iterator
-
Hey, wieder mal ne neue Frage :p
Ich soll das zeichenweise Einlesen eines Strings mit dem string::const_iterator realisieren. Leider sagt mir das gar nix und im I-net finde ich keine gute Erklärung...MfG
Aknayirp
-
Aknayirp schrieb:
Hey, wieder mal ne neue Frage :p
Ich soll das zeichenweise Einlesen eines Strings mit dem string::const_iterator realisieren. Leider sagt mir das gar nix und im I-net finde ich keine gute Erklärung...MfG
AknayirpDie Aufgabe macht keinen Sinn. Hast du falsch verstanden. Mehr Information!
-
SeppJ schrieb:
Aknayirp schrieb:
Hey, wieder mal ne neue Frage :p
Ich soll das zeichenweise Einlesen eines Strings mit dem string::const_iterator realisieren. Leider sagt mir das gar nix und im I-net finde ich keine gute Erklärung...MfG
AknayirpDie Aufgabe macht keinen Sinn. Hast du falsch verstanden. Mehr Information!
Ich Poste mal die Erklärung zu der ganzen Klasse:
vector<unsigned int> encode(const string &) Hier sind Sie am Kernstück der Array-Implementierung angelangt. Natürlich ha- ben Sie bei der Programmierung alle Freiheiten, dennoch sind hier einige Hin- weise gegeben, wie wir diese Aufgabe gelöst haben. Sie benötigen zwei Strings, einen String S für die alte, bisher eingelesene Zei- chenkette, sowie einen String Sx für die alte Zeichenkette nach Erweiterung um ein neu eingelesenes Zeichen x. Außerdem benötigen Sie einen Ausgabevektor vector<unsigned int>, in den Sie die Indexwerte des Codierungsresultats schreiben können. Nun befolgen Sie die Anweisungen des Algorithmus. Sie müssen Zeichen für Zeichen einlesen und jeweils die unten beschriebenen Schritte durchführen. Das zeichenweise Einlesen eines Strings sollten Sie mit dem string::const_iterator realisieren. Machen Sie sich damit vertraut, wie man den Iterator benutzt. 1. Bestehende Zeichenkette S (zu Beginn leer) mit neu eingelesenem Zeichen x in Zeichenkette Sx zusammenfügen. Prüfen, ob die so entstandene neue Zeichenkette schon im Dictionary vorhanden ist. 2. Wenn ja: Sx an S zuweisen, neues Zeichen x einlesen. Falls nicht End-Of- File, dann weiter bei Schritt 1, sonst weiter bei 4. 3. Wenn nein: Ausgabe des Indexwerts der alten Zeichenkette S im Dictiona- ry, also Hinzufügen der Positionsnummer zum Ausgabevektor. Hinzufügen der neuen Zeichenkette Sx an die nächste freie Stelle ins Array. Variable S der alten Zeichenkette mit dem zuletzt eingelesenen Zeichen x überschrei- ben. (Last-First-Property: Das letzte Zeichen der vorherigen Zeichenfolge ist stets das erste Zeichen der neuen Zeichenfolge.) S enthält nun nur das Zeichen x. Dann das nächste neue Zeichen x einlesen. Falls nicht End-Of- File, dann weiter bei Schritt 1. 4. Der Algorithmus erfordert, dass Sie ganz zum Schluss, sobald Sie das Fi- leende erreicht haben, noch die Position der letzten alten Zeichenkette S ausgeben (also den Index in den Ausgabevektor schreiben).Hoffe es wurde dadurch klarer.
-
Schau dir einfach mal das Beispiel unter http://www.cplusplus.com/reference/string/string/begin an sowie die generelle Anwendung von Iteratoren: http://de.wikibooks.org/wiki/C++-Programmierung/_Die_STL/_Iteratoren
-
Th69 schrieb:
Schau dir einfach mal das Beispiel unter http://www.cplusplus.com/reference/string/string/begin an sowie die generelle Anwendung von Iteratoren: http://de.wikibooks.org/wiki/C++-Programmierung/_Die_STL/_Iteratoren
Danke mache ich
