【发布时间】:2020-10-31 22:45:33
【问题描述】:
从命令行输入中,我收到一个 '='、'' 的单个字符,后跟一个值,我的目标是使用自定义函子迭代和修改我的底层数据容器(例如使用 remove_if)。简单但缓慢的解决方案是拥有一个使用输入 char 构造的函子,并在其中的运算符之间切换。但是,这需要在每次调用仿函数的运算符时检查运算符类型。我的第一个解决方案是在 char 上使用 switch 语句并创建一个具有 3 个派生类的基础仿函数类。然而,我意识到虽然这是一个完全可行且快速的解决方案,但我最终得到了大量的 switch 语句代码重复。我尝试解决这个问题是使用多态性并具有一个接受输入字符并返回具有虚拟 () 运算符的基类指针的函数。但是,当我传递取消引用的基类指针时,它不会接受纯 virtual() 运算符,并且不会被派生类的运算符覆盖。从某种意义上说,我想要一个返回与输入字符的值相关联的特定 lambda 或比较器的函数。有什么好的方法可以解决这个问题?
【问题讨论】:
-
关闭后,我链接到different ways