在使用调车场算法将中缀表达式转换为后缀表达式的情况下.我想用一个向量来存储输出,它将同时存储运算符和数字类型的数据.
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum Operator {
Add,
Sub,
Mul,
Div,
}
fn main() {
let mut output: Vec<String> = Vec::new(); // create an output vector
let a = 2;
let b = Operator::Add;
let c = 3;
output.push(a.to_string());
output.push(b.to_string());
output.push(c.to_string());
}
上述代码当然不会编译,因为没有为Operator
定义to_string()
方法.我认为有两种方法可以解决这个问题:
- 定义一个
to_string()
的方法 - 创建一个向量来存储对数字和
Operator
的引用.
我认为第二个是首选,尽管我不知道创建引用向量是否会带来很多复杂性.