【发布时间】:2015-01-24 04:42:48
【问题描述】:
对于我的任务,我正在存储用户登录信息。我正在接受一个作为命令的字符串。该命令可以是创建、登录、删除等。总共有 10 个选项,即可能有 10 个不同的字符串。谁能解释一种更有效的方法来编写这个而不是 10 个 if 和 else if 语句?基本上除了使用一堆if (string == "one"),else if (string == "two")之外,我应该如何格式化/构造东西。谢谢
【问题讨论】:
-
大概你的意思是
==而不是=。你可以做一个查找表,但如果你有 10 段不同的代码要执行,那么真的没有办法绕过编写 10 段代码! -
是的,或者你必须将它们存储在一个表中
-
如果您有许多命令选项可以在应用程序的生命周期中更改,那么一个灵活的选择是使用映射或哈希表映射命令到您要调用的函数或类似函数的对象 - 但是对于 10 个固定选项,为了简单/易读,我可能只使用
if/else。 -
table / hash-switch / etc. 解决方案有很多样板可以让它们运行,所以我不会打扰,除非你至少有 20 个案例(并计划轻松添加/将来删除)
-
毫无疑问会有人来发一个
map的字符串到lambda
标签: c++ string conditional