switch 语句(或编译形式的跳转表)“决定”跳转位置所花费的时间是否随着它包含的 case
es 的数量而增加?
最佳答案
这取决于编译器和(通常)您提供的值——如果值是“密集的”(即范围内的所有或几乎所有值在 switch 语句中都有 case),您通常会跳转表,它对所有值(在该范围内)花费相同的时间。如果您的值相对稀疏,它可能会编译成大致相当于 if/then/else 阶梯的代码,在这种情况下,添加更多(稀疏)case 值会增加执行时间。
关于C++ 切换表性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981855/