我正在尝试创建一个模板化堆栈队列。但是我不知道如何添加数据或从队列中检索数据。
我是这样启动的:
Queue<Stack<Function>> processQueue;
“函数”是我创建的类。
例如,我正在尝试弄清楚如何将函数之类的东西添加到队列中第一个堆栈的顶部。
我在 Queue 类中有一个入队函数,在 Stack 类中有一个推送函数。
我试过用不同的方式来做,但我无法找出正确的语法,即使这是合法的事情。 这是一个例子:
Function newFunc(funcName, funcExecept);
processQueue.enqueue(Stack<Function>(push(newFunc)));
或者如果我想检索数据:
processQueue.peekFront().returnTop().getName();
最佳答案
您的语法无效,因为 push
必须在实例化对象上。先创建栈,再压入Function,再加入队列。
Function newFunc(funcName, funcExecept);
Stack<Function> stack;
stack.push( newFunc );
processQueue.enqueue(stack);
或者,先放队列的栈,再push给它
processQueue.enqueue(Stack<Function>());
processQueue.peekFront().push( Function( funcName, funcExecept ) );
在第二个选项中,使用 peekFront
假设队列中只有一个 Stack,也就是刚刚添加的那个。
关于c++ - 双模板对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58318663/