所以我使用STL创建了一个堆栈队列,如下所示:
void main()
{
queue<stack<string>> qos;
stack<string> words;
words.push("hey");
qos.push(wors);
cout<< (qos.pop()).top()<<endl;
}
预期的行为:
返回单词 嘿
实际结果:
错误:成员引用基本类型'void'不是结构或联合
我的问题是为什么它不返回我的期望,我的意思是因为qos.pop()返回堆栈元素,并且堆栈具有成员函数top();
答案 0 :(得分:-1)
您的变量words
和qos
毫无关联。
另外,main()
的返回类型必须为int
。
收到错误消息的原因是,可以调用queue<>::pop
不返回值top()
。
您可能想要
#include <iostream>
#include <queue>
#include <stack>
#include <string>
int main()
{
std::queue<std::stack<std::string>> qos;
std::stack<std::string> words;
words.push("hey");
qos.push(words);
std::cout << qos.front().top() << '\n';
}