myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   (C++) Expression: Vector is out of range (https://mygully.com/showthread.php?t=2952656)

gangstergangster 13.06.13 09:47

(C++) Expression: Vector is out of range
 
Hey. wollte es eigentlich vermeiden hier extra ein Thema für zu erstellen. Jedoch habe ichs auch schon gegoogelt und nichts brauchbares zu meinem Problem gefunden.

Bei folgendem Code bekomme ich immer vom Compiler die Meldung:
Zitat:

[...]Expression: Vector is out of range.[...]
Code:
Code:

string namensbeispiel;
vector<string> namensvektor;
do{
        cout << "Bitte Namen eintragen. Zum beenden STOP eingeben.\n";
        cin >> namensbeispiel;
                if(namensbeispiel != "STOP")               
                        namensvektor.push_back(namensbeispiel);
        }

STOP kann ich getrost eingeben. Aber sobald ich einen Namen eingebe kommt eben diese Meldung. ich würde gern den befehl .push_back() weiter benutzen. ich weis das es auch alternativen gibt.

Your_Conscience 13.06.13 10:37

Also in deinem Code an sich ist kein Fehler enthalten, hast du vielleicht etwas an den Headern etwas geändert?

Ich habe den Code bei mir getestet und er läuft ohne Probleme, habe nur ein while und break hinzugefügt. Hier der komplette Code:

Code:

#pragma hdrstop
#pragma argsused

#include <tchar.h>
#include <string>
#include <vector>
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{

        string namensbeispiel;
        vector<string>namensvektor;

        do {
                cout << "Bitte Namen eintragen. Zum beenden STOP eingeben.\n";
                cin >> namensbeispiel;
                if (namensbeispiel != "STOP")
                        namensvektor.push_back(namensbeispiel);
                else break;
        } while (1);

        return 0;
}


gangstergangster 13.06.13 11:40

danke dir vielmals.
habe jetzt selber meinen code mit else break und while(1) ergänzt.. wird wohl daran gelegen haben. deinen header habe ich nicht übernommen. es klappt trotzdem.
hier mal der komplette code:
Code:

#include <iostream>
#include <cstdlib>
#include <vector>
#include <string>
using namespace std;


string namensbeispiel;
vector<string> namensvektor;
do{
        cout << "Bitte Namen eintragen. Zum beenden STOP eingeben.\n";
        cin >> namensbeispiel;
                if(namensbeispiel != "STOP")               
                        namensvektor.push_back(namensbeispiel);
       
        else break;
}
while(1);

system("Pause");
return 0;
}



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.