2013-11-27 127 views
0

我试图在容器中存储表达式(运算符和操作数)。我能想到的最好的实现是将它们存储在一个字符串中。存储表达式的最佳实践

例如:

2 30 + 5 * 

将被存储为

"2 30 + 5 *" 

然而,这招致了问题,使用

string tk; 
string expr; 
stringstream e(expr); 
e >> tk; 

如果是字符串时,提取任何缺失的空间,“2 30+ 5 *”,错误处理部分将是某种令人分心的事情。有没有更好的方法来做到这一点?

谢谢。

回答

0

无论你必须将表达式分解成它的部分(标记化),首先要做到这一点,然后存储一个数组/向量的标记。