C ++ - 嵌套容器(列出堆栈容器的容器)

时间:2016-09-17 01:35:29

标签: c++ list stl linked-list stack

我想使用STL创建堆栈对象的链接列表。这就是我的代码的样子:

int main() {
    stack<int> s1;
    list<stack<int>> ll;
    s1.push(0)
    ll.push_back(s1);
    auto it = ll.begin();
    it++;
    cout << *it->top() << endl;
    return 0;
}

我得到的错误是非法间接和&#39;&lt;&lt;&lt;&#最后一行上课非法。这似乎是什么问题?感谢。

1 个答案:

答案 0 :(得分:0)

您希望您的专线阅读如下:

cout << (*it).top() << endl;

您取消引用该值而不是指向该值的指针。请注意,我已将->更改为. 主要是“它”本质上是指向您的价值的指针,'*它'为您提供价值,因此当您想要访问该值的成员时,您需要.而不是{{1} }

更新:另外,正如其他人所指出的,有一个缺失;在推送之后,您只在列表中添加了一个项目,然后递增了迭代器,该迭代器将您定位在列表的末尾,在一个值之后。这会导致运行时问题。