有人可以帮助我创建一个处理不同类型变量的堆栈。我有一个BNF语法,我需要推入堆栈,下面是我需要推入堆栈的东西
1)+, - ,/,*
2)整数 - 0,1,2..9
3)字符 - a,b..z,A,B..Z
4)$ Sign,括号(打开,关闭),下划线
我不确定我的下面尝试是否能满足以上所有要求。如果我错了,请纠正我。
stack<int,string>mystack
答案 0 :(得分:3)
您需要使用多态并将动态类型推送到堆栈中。这可以是boost.variant之类的形式,也可以是简单的类层次结构,并通过 smart 指针将项目存储在堆栈中。这不是一个详尽的清单。
C ++不支持动态变量作为核心语言项。您可以使用虚函数和继承等技术创建它们,或者键入擦除。