基于用户输入的运行时功能规范

Hoy*_*oyt 4 c++ user-input runtime function-call

好吧,因为我用c ++写了很多东西已经有一段时间了,我已经习惯了更现代语言的一些细节.这是一个一直在唠叨我,我相信那里有一个答案.有没有办法在运行时调用用户指定为字符串的函数?无需诉诸某种大规模的开关/ if块?

我所处理的情况可归结为:我已经解决了我在C++中解决的数学相关问题,并指定为"Problem1.cpp/Problem1.h","Problem2.cpp/Problem2 .h"等.每个问题都有一个函数调用problemX()(X问题的数量),这个函数启动了解决方案.在程序开始时,我想问用户"你想解决哪个问题?" 他们指定了一个数字.然后,我想调用适当的problemX()函数,而不必使用大量的硬编码switch语句(或if语句,或函数指针的索引数组等).

我确信这是可能的,但我不记得该如何去做.有任何想法吗?

Joh*_*136 5

unordered_map 字符串到函数指针.

调整用户输入以确保它全部为小写(或者如果您喜欢SHOUTING),则只需查找该功能.如果存在则调用它,否则错误.