Probleme mit Vektoren?

Stephan Liebig

Erfahrenes Mitglied
Also ich arbeite mich gerade durch die Welt von VC++.
Ich möchte einfach, eine Liste mit eingegebenen Zahlen in umgekehrter Reihe wieder ausgeben. Dazu habe ich folgendes Programm geschrieben:

C++:
#include <iostream>
#include <vector>
using namespace std;

void vectorausgabe(vector<int> x)
{
	for(unsigned int i=x.size(); i >= 0; i--) {
		cout << x[i];
		cout << endl;
	}
}

int main()
{
	vector<int> v;
	int zahl = 0;

	do {
		cout << "Bitte geben Sie eine Zahl ein: ";
		cin >> zahl;
		if(zahl != -1)
			v.push_back(zahl);
	}while(zahl != -1);

	vectorausgabe(v);	
}

Das Programm startet, aber mit der Eingabe -1 erscheint ein Fehler. "Debug Assertion Failed! Expression: vector subscript out of range"

Wo ist der Fehler?
 
Zuletzt bearbeitet von einem Moderator:
Kann sein das ich es gerade falsch im Kopf hab, müsste aber eigtl heißen:
C++:
void vectorausgabe(vector<int> const& x)
{
    for (std::size_t i(x.size() - 1); i >= 0; --i)
        std::cout << x[i] << std::endl;
}
oder einfacher:
C++:
std::copy(v.rbegin(), v.rend(), std::ostream_iterator(std::cout, "\n"));
...
 
Zurück