c++ - 双模板对象

标签 c++ syntax

我正在尝试创建一个模板化堆栈队列。但是我不知道如何添加数据或从队列中检索数据。

我是这样启动的:

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/

相关文章:

c++ - long double sqrt() 的精度

c++ - 为什么这个 C++ 代码没有给出编译错误?

ScalaIDE - 以冒号结尾的方法的奇怪之处

syntax - 如何在 Swift 中重写 Objective C 委托(delegate)方法

c - C中的这段代码如何工作?

C++ 无法使用 GDI+ 编译 dll

c++ - 我如何估计 std::map 的内存使用情况?

rest - SharePoint 2013 REST 语法 : How to Reference Multiple Lookup Field Values

javascript - '+new Date' 中的加号有什么作用

c++ - 不使用算术运算符的除法