wie kann ich Elemente hinzufügen wird ein leerer Vektor in einer Schleife?
Ich versuche zu erstellen, wird ein leerer Vektor in einer Schleife und möchte hinzufügen, ein element des Vektors jedes mal, wenn etwas ist, Lesen Sie in dieser Schleife.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
std::vector<float> myVector();
float x;
while(cin >> x)
myVector.insert(x);
return 0;
}
aber dies gibt mir Fehlermeldungen.
InformationsquelleAutor der Frage Amber Roxanna | 2013-08-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie
std::vector::push_back()
statt:und nicht
std::vector::insert()
die, wie Sie sehen können, in den link, muss ein iterator auf die position angeben, wo Sie wollen, um das element einzufügen.Auch, wie was @Joel hat kommentiertSie sollten entfernen Sie die Klammern in Ihre Vektor-Variablen-definition.
und nicht
Indem Sie die letzteren führen Sie in C++'s Most Vexing Parse problem.
InformationsquelleAutor der Antwort Mark Garcia
Verwenden
push_back
:Den
insert
Funktion nimmt einen iterator, wie das erste argument angibt, die position zu legen.Außerdem müssen Sie, um loszuwerden, die Klammern in der Deklaration von
myVector
:InformationsquelleAutor der Antwort Yang
Wenn Sie verwenden möchten
myVector.insert()
verwenden Sie es wie
myVector.insert(myVector.end(), x)
. Dies wird append x am Ende myVector.Können Sie x am Anfang von
myVector.insert(myVector.begin(), x)
.InformationsquelleAutor der Antwort Nikunj