【发布时间】:2022-10-17 07:37:22
【问题描述】:
从stack1弹出值然后尝试将这些值推回stack1后,我被卡住了,然后按顺序推回stack2。我不确定是否需要另一个循环来使其成为嵌套循环,或者我是否应该切换到 for 循环,因为它们正在计算循环。
void copyStack(stack<int>& stack1, stack<int>& stack2)
{
int size = stack1.size();
while(size > 0)
{
stack2.push(stack1.top());
stack1.pop();
stack1.push(stack2.top());
--size;
}
}
例子:
堆栈 1:4 3 2 1
堆栈2:(空)
(运行功能后...)
堆栈 1:(空)
堆栈 2:4 3 2 1
【问题讨论】:
-
一些值还是所有值?如果是后者,
std::stack有一个复制构造函数。 -
@user4581301 所有的值,我只是想实现我自己的复制功能,我知道堆栈有一个 swap() 功能。
标签: c++ data-structures stack