该行是否在使用堆栈的程序中有效?
s1.top()== s2.push(J);
这表明堆栈的顶部元素(s1)的值被分配给另一个堆栈s2。
其中j ='A';
如果没有,那么它的替代品是什么?
答案 0 :(得分:2)
这是无效的,因为std::stack::push返回void
如果您想知道s1.top()
中是否包含s2
,您应该使用std::find
答案 1 :(得分:0)
不,它无效,绝对不是你的描述。查看documentation for stack in C++,方法push返回类型为void(即不返回任何内容)。
请注意,==是两个值的比较,而=是一个赋值(将右侧指定为左侧)。
要从堆栈顶部移除s1并按下s2,您应该执行以下操作:
s2.push(s1.top());
s1.pop();