Problem mit Iteratoren

Dieses Thema im Forum "C/C++" wurde erstellt von Kayzill, 17.02.2003.

  1. #1 Kayzill, 17.02.2003
    Kayzill

    Kayzill Greenpeace[GNU-Abteilung]

    Dabei seit:
    16.02.2003
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    /usr/home/dave
    Hallo Leute!
    hab da mal folgendes Problem:
    Bei mir will die stringfunktion insert() einfach nicht klappen und möchte nun fragen wieso nicht,ich poste mal ein bischen code:
    Code:
    vector<char> ready(20);
    vector<char> space(2);
    space[0]=(char)" ";
    vector<char>::const_iterator spa=text.begin();
    for(;spa<text.end();spa++)
    {
    spa=find(spa,text.end(),'Ä');
    text.insert(spa,10,'X');
    };
    
    mr.Debugger sagt er hätte Probleme mit dem Iterator 'spa',ich verstehe aber nicht wieso,immerhin müsste er doch richtig definiert worden sein,ich hoffe das ihr mir helfen könnt!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. mapiox

    mapiox Tripel-As

    Dabei seit:
    21.04.2002
    Beiträge:
    176
    Zustimmungen:
    0
    wie ist denn text deklariert ?

    Oder sollte der Iterator auf das erste Element von einem Vector zeigen ?
     
  4. #3 Kayzill, 17.02.2003
    Kayzill

    Kayzill Greenpeace[GNU-Abteilung]

    Dabei seit:
    16.02.2003
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    /usr/home/dave
    text ist auch ein vektor aus chars,spa soltle auf auf das erste Element des vektors zeigen,was ya nicht klappen will.
    MfG
     
  5. mapiox

    mapiox Tripel-As

    Dabei seit:
    21.04.2002
    Beiträge:
    176
    Zustimmungen:
    0
    const_iterator geht nicht da nur read_only, du möchtest aber etwas einfügen.
    Code:
    vector<char>::iterator spa = text.begin();
    
    Dieses Beispiel funktioniert, wenn die Anzahl der Elemente des Vectors angegeben wird und genügend Platz zum einfügen vorhanden ist:
    Code:
    vector<char> text(200);
    // füllen ....
    vector<char>::iterator spa = text.begin();
    
     for( ; spa < text.end(); ++spa)
     {
       spa = find(spa,text.end(),'Ä');
       if(spa==text.end()) break;
       text.insert(spa,10,'X');
       spa+=10;
     } 
    
    Bei
    Code:
    vector<char> text;
    
    ändert sich nach insert die Größe des Vectors und der Iterator ist dann üngültig.
     
  6. #5 Kayzill, 17.02.2003
    Kayzill

    Kayzill Greenpeace[GNU-Abteilung]

    Dabei seit:
    16.02.2003
    Beiträge:
    62
    Zustimmungen:
    0
    Ort:
    /usr/home/dave
    ah okay das hab ich mri schon gedacht,nur irgendwie ging das ohen const auch net,ich probiers nachher mal bei mir Zuhause und danke hiermit schonmal:)
    MfG
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 LiquidAcid, 08.07.2003
    LiquidAcid

    LiquidAcid Grünschnabel

    Dabei seit:
    08.07.2003
    Beiträge:
    3
    Zustimmungen:
    0
    Ort:
    NRW
    Versuch mal den Iterator auf Ungleichheit mit dem End-Iter zu testen, also != xyz.end(), so mache ich das immer. KA obs wirklich daran liegt.

    cya
    liquid
     
  9. trapni

    trapni Grünschnabel

    Dabei seit:
    09.07.2003
    Beiträge:
    2
    Zustimmungen:
    0
    Ort:
    Germany/Berlin
    Nun, so wie es aussieht willst du in einem string einfach alle AEs durch ein X ersetzen, dazu kannst du die einfache std::replace(beginIter, endIter, oldV, newV) benutzen:

    Code:
    std::replace(text.begin(), text.end(), 'ä', 'X');
    Zumal in deinem code sowieso ungeklaerte und falsche dinge drin standen, die aber wohl schon oben genannt wurden.

    MfG,
    Christian.
     
Thema:

Problem mit Iteratoren

Die Seite wird geladen...

Problem mit Iteratoren - Ähnliche Themen

  1. Iteratoren-Problem

    Iteratoren-Problem: Hallo, ich hab vor einiger Zeit angefangen mein erstes C++-Buch zu lesen und bin jetzt auch schon beim zweiten. Da man aber bekanntlich am besten...
  2. Virtualboxproblem

    Virtualboxproblem: Hallo Folgnedes Problem: Ich kann ohne Probleme In Debian-Sid, 64Bit und virtualbox-dkms Unixoide installieren, wenn es sich um eine...
  3. grub-pc Probleme bei upgrade

    grub-pc Probleme bei upgrade: Hallo, ich habe beim dist-upgrade folgendes Problem: ---------- Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt. Trigger für...
  4. Problem bei apt-get upgrade (Kali 2.0)

    Problem bei apt-get upgrade (Kali 2.0): Hi, seit paar Tagen habe ich einige Probs. Dachte es sei mal an der Zeit für ein Update und nun tauchen da einige Fehler auf: Es müssen noch 0 B...
  5. Probleme mit YUM

    Probleme mit YUM: Hallo, ich habe CentOs 7 als Dualboot mit Windows 7 auf einen Dell Latitude E5510 installiert. Dies hat soweit auch alles geklappt. Leider habe...