Vector

Hallo

Ich komme mit der vector-Klasse überhaupt nicht klar. Ich will eine Eingabe von mehreren Zahlen irgendwie in einen vector einlesen. Kann mir jemand sagen, wie ich das mache?

Danke schonmal

Hi,
das ist ganz einfach

//Ich habs nicht ausprobiert, daher geb ich keine
//Garantie, das es so funktionert. Wenn, dann sinds aber nur
//Schreibfehler

std::vector satz;
std::string temp;
do
{
 std::getline(std::cin,temp);
 satz.push\_back(temp);
}
while(temp.length());

das liest ganze Zeilen von stdin ein, und speichert sie Zeilenweise, bis Du nur Enter drückst. Die methode push_back() hängt dabei hinten an den Vector an.

grüße, Micha

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo

Hi,
das ist ganz einfach

//Ich habs nicht ausprobiert, daher geb ich keine
//Garantie, das es so funktionert. Wenn, dann sinds aber nur
//Schreibfehler

std::vector satz;
std::string temp;
do
{
std::getline(std::cin,temp);
satz.push_back(temp);
}
while(temp.length());

das liest ganze Zeilen von stdin ein, und speichert sie
Zeilenweise, bis Du nur Enter drückst. Die methode push_back()
hängt dabei hinten an den Vector an.

grüße, Micha

Auf jeden Fall schonmal danke! Erkennt C++ dann die Zahlen auch als Zahlen (integer)? Du hast da ja strings verwendet. Muss ich die dann mit Leerzeichen trennen oder gibt es da ein spezielles Symbol?
Ach ja:
Gibt es eine Methode, den Vektor ganz auszugeben? Im Moment mache ich die Ausgabe komponentenweise, das ist nicht so schön.

Auf jeden Fall schonmal danke! Erkennt C++ dann die Zahlen
auch als Zahlen (integer)? Du hast da ja strings verwendet.

Nein, zumindest nicht direkt. Das war aber auch nur ein Beispiel zum Umgang mit einem Vector. Du kannst ja auch Zahlen einlesen, und diese dann in einem std::vector speichern.

Gibt es eine Methode, den Vektor ganz auszugeben? Im Moment
mache ich die Ausgabe komponentenweise, das ist nicht so
schön.

Jo, gibt es. mit der Funktion copy aus den Algorithm:
Bsp:

std::vector vec;
// den Vector mit irgend was befüllen.
 vec.push\_back(3);
 ...

//zum ausgeben
std::copy ( vec.begin() , vec.end(), std::ostream\_iterator (std::cout,"\n"));

das „\n“ am Schluß ist das Trennzeichen, mit dem Der Inhalt des Containers ausgegeben wird. Das kann alles mögliche sein.

Ich würd vorschlagen, du besorgst Dir ien Buch über die STL. Das macht wirklich sinn.

grüße, Micha