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


  • Mod

    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
    Aknayirp

    Die 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
    Aknayirp

    Die 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 👍


Anmelden zum Antworten