Problem mit Iteratoren

Diskutiere Problem mit Iteratoren im C/C++ Forum im Bereich Programmieren unter Linux/Unix; Hallo Leute! hab da mal folgendes Problem: Bei mir will die stringfunktion insert() einfach nicht klappen und möchte nun fragen wieso nicht,ich...

  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. 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 ?
     
  3. #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
     
  4. 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.
     
  5. #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
     
  6. #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
     
  7. 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. Probleme mit WinSCP und Rechten

    Probleme mit WinSCP und Rechten: Hallo. Ich habe vor ein paar Tgen meinen ersten Ubuntu 16.04 vServer bei 1&1 bestellt, gemäß dem sicheren Umgang damit, habe ich erstmal den SSH...
  3. Bootproblem

    Bootproblem: Hallo Ein PC (i686 mit Debian unstable, nox) hat Bootprobleme (will heißen ist erfolgt keine Grafikausgabe. was ich bisher gemacht habe: HDD an...
  4. Crontab und Scripts - Problem

    Crontab und Scripts - Problem: Hallo Zusammen Ich habe ein Script welches mittels Cronjob ausgeführt werden soll. Gemäss Log wird es auch ausgeführt, jedoch passiert nichts:...
  5. Problem bei der installation einer Sun Netzwerkkarte

    Problem bei der installation einer Sun Netzwerkkarte: Guten Morgen zusammen, beim installieren einer zusätzlichen Netzwerkkarte habe ich ein Problem. Die Karte wird nicht automatisch installiert. Es...