使用vector和struct使用C ++ Linked List输出错误

时间:2015-10-30 08:13:44

标签: c++ c++11 vector struct

我是C ++的新手,最近遇到了一个问题。

我尝试使用struct创建链接列表,并将所有引用存储在向量中,但我不知道为什么当我回想起值时,值会发生变化。

我会更具体。这是代码:

struct ListNode {
    int val;
    ListNode *next;
    ListNode(int x) : val(x), next(NULL) {}
};

int main() {
    vector<int> a = { 2, 4, 3 };
    vector<ListNode> aListNode;

    aListNode.push_back(ListNode(a[0]));
    for (int i = 1; i < a.size(); i++) {
        aListNode.push_back(ListNode(a[i]));
        aListNode[i - 1].next = &aListNode[i];
        cout << aListNode[i - 1].next->val << endl;
    }

    cout << aListNode[0].next->val << endl;

    cin.get();

    return 0;
}

结果是:

4
3
-17891602

但预期的结果是:

4
3
4

我认为问题来自使用指针,但我仍然不确定在哪里。

0 个答案:

没有答案