c++ - 基于用户输入的运行时函数规范

标签 c++ runtime user-input function-call

<分区>

好吧,我已经有一段时间没有用 C++ 编写任何大的东西了,我已经习惯了更现代语言的一些优点。这是一个一直在唠叨我的问题,我相信那里有答案。有没有办法在运行时调用用户指定为字符串的函数?无需诉诸某种大规模的 switch/if block ?

我所处的情况归结为:我有一大堆用 C++ 解决的与数学相关的问题,并指定为“Problem1.cpp/Problem1.h”、“Problem2.h”。 cpp/Problem2.h”等。每个问题都有一个名为 problemX() 的函数(其中 X 是问题的编号),它会启动解决方案。 在程序开始时,我想问用户“您想解决哪个问题?”他们会指定一个数字。然后我想调用适当的 problemX() 函数,而不必诉诸大量的硬编码 switch 语句(或 if 语句,或函数指针的索引数组等)。

我确信这一定是可能的,但我只是不记得如何去做。有什么想法吗?

最佳答案

unordered_map函数指针的字符串。

调整用户输入以确保它全部是小写(如果您喜欢大喊大叫,则为大写),然后只需查找函数即可。如果存在则调用它,否则出错。

关于c++ - 基于用户输入的运行时函数规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13202259/

相关文章:

r - 尝试获取 R 中的商作为数字对象

php - MySql User Input If Empty = '00' ELEIF 单个数字在前面添加一个零

C++:为 std::sort 提供模板化比较函数

java - 自定义 Java 类与映射的速度

c++ - if(isspace()) 语句不工作 C++

java - Runtime.getRuntime().availableProcessors()

objective-c - Mac OS X - Objective C 运行时 - 什么、哪里、什么时候?

python - 如何读取多行原始输入?

c++ - 将文件转储到字符串数组中

c++ - 构造函数错误,打印出 'a',然后在崩溃前打印出一个三角形