C++ 切换表性能

标签 c++ performance

switch 语句(或编译形式的跳转表)“决定”跳转位置所花费的时间是否随着它包含的 casees 的数量而增加?

最佳答案

这取决于编译器和(通常)您提供的值——如果值是“密集的”(即范围内的所有或几乎所有值在 switch 语句中都有 case),您通常会跳转表,它对所有值(在该范围内)花费相同的时间。如果您的值相对稀疏,它可能会编译成大致相当于 if/then/else 阶梯的代码,在这种情况下,添加更多(稀疏)case 值会增加执行时间。

关于C++ 切换表性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2981855/

相关文章:

c++ - 即使在 Visual C++ 编译器中,在模板中传递 "const char"参数时也会遇到一些问题 Nov 2013 CTP

python - 为什么在循环调用时 plt.savefig() 性能会下降?

php - 哪个更快,array_key_exists 还是 array_search?

c++ - #include <> 和 #include ""

c++ - VS 2010 c++ 如何使用不同的源文件进行不同的解决方案配置

c++ - 即使使用 -lpthread 选项,Sqlite3 库也会出现线程错误

c++ - Richedit Msftedit奇怪的边框

c++ - 迭代器与反向迭代器

javascript - 关闭模式后页面变得无响应

hibernate - 发布后优化基于 ORM 的模型