Hier ist die Frage. Ich habe einen Vektor von Ints, und Benutzer sollte seine Elemente eingeben, solange er oder sie will. Dann wird dieser Vektor an eine Funktion übergeben, die aus welchem Grund auch immer ihre Größe berechnet. Gibt es einen Weg dazu? Ich fand einige Codes auf Seiten des Internet:Unbekannte Größe Vektor Eingabe
std::vector<int> vec;
std::string buffer = "";
std::cout << "Enter numbers. "
<< "After you finish, enter newline" << std::endl;
do {
std::getline(std::cin, buffer);
if (buffer.size() > 0) {
vec.push_back(atoi(buffer.c_str())); //stoi was not declared =(
}
} while (buffer != "");
foo(vec);
....
void foo(std::vector<int> &input)
{
for (const int &i : input)
{
std::cout << i << endl;
}
}
Aber dieser Code nicht funktioniert in der richtigen Art und Weise: Ich wähle die Eingabe von Zahlen und es tut einfach nichts. Hab keine Ahnung, was damit nicht stimmt. (C++ 11 freigegeben)
Was meinst du mit "es tut nichts"? Meinst du, nichts wird zurück auf den Vektor geschoben? In der Frage gibt es übrigens auch eine Inkonsistenz zwischen den 'std :: vector' Variablennamen' vec' und 'input'. – ArchbishopOfBanterbury
argh, vergessen zu ändern, während Copypaste; es gibt mir einfach nicht einmal eine Chance, etwas einzugeben – Evgeny
Was passiert, wenn der Benutzer "Frosch" statt einer Zahl eingibt? –