C++ 试图在对象内部创建指向上一个对象的指针

C++ 试图在对象内部创建指向上一个对象的指针,c++,C++,我试图创建指向节点的指针向量,其中每个节点存储指向列表中前一个节点的指针 我做了一个小测试程序,看看我是否可以访问我调用的前一个对象中的变量gscore #include <iostream> #include <vector> using namespace std; struct Node { Node(int gscore1) { gscore = gscore1; } Node *previous; i

我试图创建指向节点的指针向量,其中每个节点存储指向列表中前一个节点的指针

我做了一个小测试程序,看看我是否可以访问我调用的前一个对象中的变量gscore

#include <iostream>
#include <vector>

using namespace std;

struct Node
{
    Node(int gscore1)
    {
        gscore = gscore1;
    }

    Node *previous;
    int gscore;
};

int main()
{
    std::vector<Node*> nodeVec;

    Node *tempnode;
    tempnode = new Node(10);
    Node *tempnode2;
    tempnode = new Node(11);

    nodeVec.push_back(tempnode);
    nodeVec.push_back(tempnode2);

    nodeVec[1]->previous = tempnode;

    cout << nodeVec[1]->previous->gscore << endl;

    return 0;
}
#包括
#包括
使用名称空间std;
结构体类型
{
节点(int gscore1)
{
gscore=gscore1;
}
节点*先前;
int gscore;
};
int main()
{
std::向量nodeVec;
节点*临时节点;
tempnode=新节点(10);
节点*tempnode2;
tempnode=新节点(11);
nodeVec.推回(tempnode);
nodeVec.推回(tempnode2);
nodeVec[1]->previous=tempnode;

cout previous->gscore您从不初始化tempnode2。您初始化tempnode两次

int main()
{
    std::vector<Node*> nodeVec;

    Node *tempnode;
    tempnode = new Node(10);
    Node *tempnode2;
    tempnode2 = new Node(11); // <<---- HERE

    nodeVec.push_back(tempnode);
    nodeVec.push_back(tempnode2);

    nodeVec[1]->previous = tempnode;

    cout << nodeVec[1]->previous->gscore << endl;

    return 0;
}
intmain()
{
std::向量nodeVec;
节点*临时节点;
tempnode=新节点(10);
节点*tempnode2;

tempnode2=newnode(11);//gscore您从不初始化tempnode2。您初始化tempnode2两次

int main()
{
    std::vector<Node*> nodeVec;

    Node *tempnode;
    tempnode = new Node(10);
    Node *tempnode2;
    tempnode2 = new Node(11); // <<---- HERE

    nodeVec.push_back(tempnode);
    nodeVec.push_back(tempnode2);

    nodeVec[1]->previous = tempnode;

    cout << nodeVec[1]->previous->gscore << endl;

    return 0;
}
intmain()
{
std::向量nodeVec;
节点*临时节点;
tempnode=新节点(10);
节点*tempnode2;

tempnode2=new Node(11);//gscore看起来像是键入错误。main()中的第三行应该是tempnode2而不是tempnode。

看起来像是键入错误。main()中的第三行应该是tempnode2,而不是tempnode。

我不敢相信我在盯着它看了这么久之后错过了它,谢谢。我不敢相信我在盯着它看了这么久之后错过了它,谢谢。在节点构造函数中,最好在0之前初始化。在节点构造函数中,最好在0之前初始化。