在c ++中将值分配给另一个堆栈

时间:2014-03-07 10:48:40

标签: c++ stack

该行是否在使用堆栈的程序中有效?

s1.top()== s2.push(J);

这表明堆栈的顶部元素(s1)的值被分配给另一个堆栈s2。

其中j ='A';

如果没有,那么它的替代品是什么?

2 个答案:

答案 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();