嵌套容器(堆栈容器的列表容器)
C++ - Nested containers (list container of stack containers)
我想使用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;
}
我得到的错误是间接非法的,'<<'对于最后第二行的class是非法的。有什么问题吗?谢谢。
你想让你的行读起来像这样:
cout << (*it).top() << endl;
您在解引用该值而不是指向该值的指针。注意,我把->
变成了.
具体来说,"it"本质上是一个指向你的值的指针,而"*it"给了你这个值,所以当你想要访问这个值的成员时,你需要一个.
而不是->
更新:另外,正如其他人指出的那样,有一个缺失;在push操作之后,你只向列表中添加了一个元素,然后对迭代器进行自增,这将你定位在列表的末尾,在1值之后。这将导致运行时问题。
相关文章:
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 嵌套列表,用于在 C++ 中实现邻接列表
- C++中的嵌套初始值设定项列表为空
- 使用"auto"推断嵌套初始值设定项列表的类型
- 从列表/向量制作嵌套 for 循环的最佳方法是什么?
- 嵌套的大括号括起来的初始值设定项列表
- C2436 '{ctor}':构造函数初始值设定项列表中的成员函数或嵌套类
- 使用 Boost.Spirit 解析嵌套列表
- 嵌套列表(字符串向量的向量)初始化失败
- 如何编写嵌套的初始分散列表,例如qpairs的qVector
- C++:将 Args && ... _args传递到嵌套列表的正确方法?
- 如何在嵌套列表初始化中从map<><>中辨别向量?
- 嵌套的C 常数数据结构,没有初始化列表或明确命名所有节点-VC 2012过早破坏了内部元素
- 显式构造函数和嵌套初始值设定项列表
- C++ 初始化构造函数初始化列表中的嵌套结构?
- C 中的嵌套双链接列表
- C :嵌套结构的平面初始化列表
- 使用父类构造函数初始化列表中的嵌套类字段中设置值
- 缩减嵌套模板的类型变量非类型列表
- 从您嵌套的列表中删除