Das Problem ist, dass ich hier nicht die erwartete Ausgabe erhalten. Ich habe eine Klasse für Node, die den Vektor der Zeiger namens Neigbours hat. Ich möchte das Objekt in den Vektor einfügen.Vektoren von Zeigern Hinzufügen und Zugreifen
Node current = Node(1, 1, street , 2, 2);
Node neighbour = Node(2, 2);
neighbour.instreets.push_back(Street(1, 1, street, 2, 2));
nodes.push_back(neighbour);
current.neighours.push_back(&nodes.at(0));
nodes.push_back(current);
dann möchte ich darauf zugreifen, um auszudrucken.
cout << nodes[1].x << " " << nodes[1].y << endl;
cout << "- " << nodes[0].outstreets[0].name << endl;
cout << "ends " << nodes[1].neighours.at(0)->x << " " << nodes[1].neighours[0]->y << endl;
Aber ich bekomme stattdessen einige Zufallszahlen für die Nachbarkoordinaten. Gehe ich falsch auf sie zu?
erwartete Ausgang ist
1 1
- street
ends 2 2
EDIT: Knoten ist ein Vektor von Node-Objekten.
Also ich nicht den Nachbarn den Vektor richtig hinzufügen? –
Das Problem ist, dass Sie einen Zeiger auf den Speicher nehmen, der dem Vektor 'nodes' gehört. Siehe bearbeitete Antwort, um es zu beheben. – rburny
Vielen Dank. Das funktioniert viel besser. –