我打算switch
发表声明,但后来意识到不能针对string
. 于是我接着写了一个if
//语句else if
,else
然后意识到我不应该把我的函数写得那么长。因此,我打算将函数调用放在每个级联if
块的主体中,并认为使用hash_map
/unordered_map
指向一组函数指针可能会更好。
我的问题是:
使用 hash_map 指向要使用的函数并以这种方式调用它会更有效吗?
IIRC,地图应该接近 O(1),作为级联 if 需要一直测试直到找到匹配项,因此为 O(N)。但是,使用带有字符串键的映射,O(1) 在什么时候(多少 N)超过了 O(N) 的性质?
它是更好的编码风格吗?
由于我正在减少将特定代码封装成特定于需要完成的操作的较小函数,我认为这是正确的。我知道这更多是一个意见问题,但作为一个社区,我认为这仍然是一个有效的问题。