gpt4 book ai didi

c++ - 无法从堆栈中检索所有内容

转载 作者:行者123 更新时间:2023-11-30 00:52:08 26 4
gpt4 key购买 nike

我有点难以理解为什么这段代码没有按预期输出?有什么想法吗?

输出:?你是

预期:?你是怎样的你好,

#include <iostream> 
#include <stack>
#include <string>
using namespace std;

int main()
{
stack<string> sentence;

sentence.push("Hello,");
sentence.push("how");
sentence.push("are");
sentence.push("you");
sentence.push("?");

for (int i=0; i<sentence.size(); ++i) {
cout << sentence.top() << " ";
sentence.pop();
}
cout << endl;

return 0;
}

最佳答案

因为调用 sentence.pop() 会将堆栈大小减少 1 并且您同时增加了 i。通过这种方式您只能获得一半的值。

改为这样做:

 while (!sentence.empty()){ 
cout << sentence.top() << " ";
sentence.pop();
}

关于c++ - 无法从堆栈中检索所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19870431/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com