大佬教程收集整理的这篇文章主要介绍了c – 使用超过50个OR(||)优化if语句,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
return key == BB_KEY_SPACE || key == BB_KEY_ZERO || key == BB_KEY_ONE || key == BB_KEY_TWO || key == BB_KEY_THREE || key == BB_KEY_FOUR || key == BB_KEY_FIVE || key == BB_KEY_SIX || key == BB_KEY_SEVEN || key == BB_KEY_EIGHT || key == BB_KEY_NINE || key == BB_KEY_A || key == BB_KEY_B || key == BB_KEY_C || key == BB_KEY_D || key == BB_KEY_E || key == BB_KEY_F || key == BB_KEY_G || key == BB_KEY_H || key == BB_KEY_I || key == BB_KEY_J || key == BB_KEY_K || key == BB_KEY_L || key == BB_KEY_M || key == BB_KEY_N || key == BB_KEY_O || key == BB_KEY_P || key == BB_KEY_Q || key == BB_KEY_R || key == BB_KEY_S || key == BB_KEY_T || key == BB_KEY_U || key == BB_KEY_V || key == BB_KEY_W || key == BB_KEY_X || key == BB_KEY_Y || key == BB_KEY_Z || key == BB_KEY_NUMPAD0 || key == BB_KEY_NUMPAD1 || key == BB_KEY_NUMPAD2 || key == BB_KEY_NUMPAD3 || key == BB_KEY_NUMPAD4 || key == BB_KEY_NUMPAD5 || key == BB_KEY_NUMPAD6 || key == BB_KEY_NUMPAD7 || key == BB_KEY_NUMPAD8 || key == BB_KEY_NUMPAD9 || key == BB_KEY_MULTIPLY || key == BB_KEY_PLUS || key == BB_KEY_SEPERATOR || key == BB_KEY_MINUS || key == BB_KEY_decimaL || key == BB_KEY_DIVIDE || key == BB_KEY_OEM1 || key == BB_KEY_OEMPLUS || key == BB_KEY_OEMCOMMA || key == BB_KEY_OEMMINUS || key == BB_KEY_OEMPERIOD || key == BB_KEY_OEM2 || key == BB_KEY_OEM3 || key == BB_KEY_OEM4 || key == BB_KEY_OEM5 || key == BB_KEY_OEM6 || key == BB_KEY_OEM7 || key == BB_KEY_OEM8 || key == BB_KEY_OEM102;`
有没有一种优化方法?我假设它需要一些处理能力来验证所有这些if语句的东西.在查看诊断时,似乎也需要花费一些时间.我想知道是否有更聪明的方法来做这件事.
char arr[256] = { 0 }; arr[BB_KEY_SPACE] = 1; arr[BB_KEY_ZERO] = 1; /* ... */ arr[BB_KEY_OEM102] = 1; bool f(char key) { return arr[(unsigned)key] != 0; /* == 1 for the BB_KEY_* values */ }
[编辑]正如@Galik在评论中最初建议的那样,通过使用std :: vector< bool>可以保存一些内存(以可忽略的速度惩罚). ARR(256);而不是char数组.
[编辑#2]正如下面的@Hurkyl和@Danh评论的那样,假设arr是一个已知的固定大小的数组,std :: bitset可以(应该?)代替std :: vector< bool>.
虽然这是完全正确的,但它们之间的选择长期以来一直是讨论和争论的主题.搜索SO和/或谷歌搜索std :: bitset vs std :: vector< bool>会发现双方的一些意见.
以上是大佬教程为你收集整理的c – 使用超过50个OR(||)优化if语句全部内容,希望文章能够帮你解决c – 使用超过50个OR(||)优化if语句所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。