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. ip6tables Problem

    ip6tables Problem: Hallo zusammen, ich hab ein Problem kann aber keinen Fehler finden, äußert sich wie folgt, ich habe endlich für ein System in Netz eine IPv6...
  3. VDSL 50 FRITZBOX 7490 PROBLEM?

    VDSL 50 FRITZBOX 7490 PROBLEM?: Hallo ,ich besitze seit letzter Woche VDSL 50 also eine 50000er Leitung. Im Router wird mir allerdings unter "DSL Informationen" 109,34 Mbit/s...
  4. Problem mit SATA

    Problem mit SATA: Hallo zusammen Wo liegt hier das Problem? - Controller defekt? (LSI SAS3041X-L) - Festplatten defekt (Western Digital Green 1.5 TB)...
  5. 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...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden