-1
問題は、ここで期待される出力が得られないということです。私はneigboursと呼ばれるポインターのベクトルを持つNodeのクラスを持っています。私はオブジェクトneigbourをベクトルに入れたい。ポインタを追加してアクセスするベクトル
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);
次に、印刷するためにアクセスしたいと思います。
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;
しかし、隣人のコーディネートの代わりに乱数を取得します。間違った方法でアクセスしていますか?
期待される出力が
1 1
- street
ends 2 2
EDITある: ノードは、ノードオブジェクトのベクトルです。
だから私はベクトルにネイバーを正しく追加していませんか? –
問題は、ベクトル 'nodes'が所有するメモリへのポインタを取っていることです。それを修正する方法については、編集済みの回答を参照してください。 – rburny
ありがとうございます。これははるかに優れています。 –