我想使用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;&#最后一行上课非法。这似乎是什么问题?感谢。
答案 0 :(得分:0)
您希望您的专线阅读如下:
cout << (*it).top() << endl;
您取消引用该值而不是指向该值的指针。请注意,我已将->
更改为.
主要是“它”本质上是指向您的价值的指针,'*它'为您提供价值,因此当您想要访问该值的成员时,您需要.
而不是{{1} }
更新:另外,正如其他人所指出的,有一个缺失;在推送之后,您只在列表中添加了一个项目,然后递增了迭代器,该迭代器将您定位在列表的末尾,在一个值之后。这会导致运行时问题。