myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Ungelesen 13.06.13, 10:47   #1
gangstergangster
Mitglied
 
Benutzerbild von gangstergangster
 
Registriert seit: Dec 2008
Beiträge: 481
Bedankt: 114
gangstergangster wird langsam von ratten respektiert | 144 Respekt Punktegangstergangster wird langsam von ratten respektiert | 144 Respekt Punkte
Standard (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.
__________________
gangstergangster ist offline   Mit Zitat antworten
Ungelesen 13.06.13, 11:37   #2
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

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;
}
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 13.06.13, 12:40   #3
gangstergangster
Mitglied
 
Benutzerbild von gangstergangster
 
Registriert seit: Dec 2008
Beiträge: 481
Bedankt: 114
gangstergangster wird langsam von ratten respektiert | 144 Respekt Punktegangstergangster wird langsam von ratten respektiert | 144 Respekt Punkte
Standard

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;
}
__________________
gangstergangster ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:35 Uhr.


Sitemap

().