Vector subscript out of range...



  • Meine Variante:

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main() {
        int eingabe;
        int zwsp=0;
        vector<int> felder;
        while(eingabe != 0)
        {
            cout << "Gib eine Zahl ein! - ENDE -Zahl!" << endl;
            cin >> eingabe;
            if(eingabe == 0)
                break;
            felder.push_back(eingabe);
        }
        for(unsigned int z = 0; z < felder.size(); z++)
        {
            cout << felder[z] << endl;
        }
    }
    

    Ich würd mal eher den Code verwenden.

    Dein Code:

    #include <iostream>
    #include <vector>
    
    using namespace std;
    
    int main() {
        int eingabe,
            zwsp=0; //ein wenig unübersichtlich, aber das ist Geschmackssache
            vector<int> felder;
        do
        {
            cout << "Gib eine Zahl ein! - ENDE -Zahl!" << endl;
            cin >> eingabe;
            felder.push_back(eingabe); //auch die negative Zahl wird eingegeben, was ist wenn ich das nicht will?
        } while(eingabe > 0);
            zwsp = felder.size(); //wofür diese variable anlegen?
        for(unsigned int z=0; z <= felder.size();z++) //du hast doch hier z um durch den vector zu laufen
        {
            cout << felder[zwsp] << endl; //hier z einsetzen
            zwsp-= 1; //wird somit überflüssig
        }
    }
    


  • Mentras schrieb:

    Wie ist das mit einem Lisp-Buch gemeint?

    Damit ist gemeint, daß Du dir auf amazon.de einen Account einrichtest, das beste Lisp-Buch für Dich, was du findest, auf den Wuschzettel stellst, mir einen Link auf deinen Wunschzettel gibst und ich bezahle Dir das Buch (ist jetzt das einfachste Protokoll, das sicherstellt, daß ich von Dir weder Namen noch Wohnort erfahre, will ich auch gar nicht wissen).



  • 😮

    Ein Account auf Amazon hab ich. Aber wieso willst du mir ein Buch kaufen? oO Ich kenn Dich kaum 🙂 Ist nicht böse gemeint, jedoch kommt mir das merkwürdig vor...

    Lg Mentras

    P.S.: FreakY<3Cpp, danke für deinen Code muss mich noch an einem Schreibstil gewöhnen... In VB hat für mich die IDE alles gemacht...^^
    Du hast auch Recht, hab unnötige Variablen definiert... dauert halt noch etwas,... 🙂



  • Mentras schrieb:

    Aber wieso willst du mir ein Buch kaufen?

    Weil ich einfach den unbestimmten Eindruck habe, daß aus Dir mal ein ganz großer Informatiker wird und ich mit dieser Intervention Dich auf einen Hops vielleicht zwei Jahre weiterbringen kann (und vom frühzeitegen Gamecoden abbringen).

    Mentras schrieb:

    oO Ich kenn Dich kaum 🙂 Ist nicht böse gemeint, jedoch kommt mir das merkwürdig vor...

    Klar ist das merkwürdig. Deswegen bestehe ich ja drauf, daß ich deine persönlichen Daten nicht erfahre.

    Wenn Du denkst, es diene nur dazu, Dir eine Falle zu stellen, denk Dir einfach ein anderes Protokoll aus, zum Beispiel als Lieferadresse dein Anwalt, oder bitte den örtlichen Bademeister, daß er als Treuhänder fungiert und das Päckchen annimt.



  • Mentras schrieb:

    P.S.: FreakY<3Cpp, danke für deinen Code muss mich noch an einem Schreibstil gewöhnen... In VB hat für mich die IDE alles gemacht...^^

    Falls es um die Einrückung geht, viele C++-IDEs machen das aus Anfrage.
    Zum Beispiel microsoftige machen das mit Strg+A (alles markieren) und dann Alt+F8 (Markierung verhübschen).



  • volkard, ich hab eben mit C# angefangen, kaufste mir ein Buch ? :p



  • FreakY<3Cpp schrieb:

    Meine Variante:
    [...]
    Ich würd mal eher den Code verwenden.

    Dein Code:
    [...]

    Dann solltest du aber noch dazusagen (wenn ich mich gerade nicht sehr vertue), dass dein Code semantisch nicht ganz identisch ist, weil sein alter Code den vector rückwärts und deiner vorwärts ausgibt.

    Felix



  • volkard schrieb:

    Mentras schrieb:

    Aber wieso willst du mir ein Buch kaufen?

    Weil ich einfach den unbestimmten Eindruck habe, daß aus Dir mal ein ganz großer Informatiker wird und ich mit dieser Intervention Dich auf einen Hops vielleicht zwei Jahre weiterbringen kann (und vom frühzeitegen Gamecoden abbringen).

    Huch, das find ich echt nett!! oO
    Dafür muss ich mich natürlich revanchieren,...

    Könnten wir privat reden? ^^ Ist etwas freizügig für mich 🙂

    Falls du ICQ hättest: 378105535

    Lg Mentras

    P.S.: Phoemuex, der Code von FreakY<3Cpp stimmt schon 🙂 In diesem Abschnitt:

    zwsp = felder.size()-1;
    for(unsigned int z=0; z < felder.size();z++) 
        {
            cout << felder[zwsp] << endl;
            zwsp-= 1; 
        }
    

    Wird alles von hinten nach vorne ausgegeben.



  • Na gut, wenn man unbedingt will, dass die Zahlen rückwärts ausgegeben werden, dann könnte man die for-Schleife so machen:

    for(unsigned int z = felder.size(); z > 0; z--)
    {
        cout << felder[z-1] << endl;
    }
    


  • FreakY<3Cpp schrieb:

    Na gut, wenn man unbedingt will, dass die Zahlen rückwärts ausgegeben werden, dann könnte man die for-Schleife so machen:

    for(unsigned int z = felder.size(); z > 0; z--)
    {
        cout << felder[z-1] << endl;
    }
    

    Dein Code hat funktioniert... Er gibt die Zahlen rückwärts aus.


Anmelden zum Antworten