c++ - 针对许多离散值进行测试的首选方法?

标签 c++

我有以下场景:

variable in {12, 4, 999, ... }:

列表中大约有 100 个离散值。我正在编写一个解析器将其转换为 C++,我能想到的唯一方法是 100 个 case 语句,或者 100 个 if ==

一个比另一个更受欢迎,还是有更好的方法来做到这一点?

我应该澄清一下,这些值是常数整数。谢谢

最佳答案

如果任何一个离散值的最大值足够小 std::vector<bool>根据该条目是否在列表中而设置为真或假的标志应该是最佳的 - 假设值以大致相等的概率出现。

关于c++ - 针对许多离散值进行测试的首选方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15147326/

相关文章:

c++ - 为什么 std::mutex 比 std::atomic 快?

c++ - 如何理解 C++ Concurrency in Action 中同一类的实例导致死锁问题?

c++ - 我对 n3797 8.5.3/5 的解释是否正确?

c++ - 如何通过boost bimap查找内存占用

c++ - 在 C++ 中找到数字除数的最快方法

c++ - 从 QMap 中删除所有值

c++ - 运行时计时功能和命令行时间之间的区别

c++ - 将 memset bool 设置为 0 是否安全?

c++ - 使用结构和类时在 C++ 中无效使用 'void'

c++ - CoRegisterClassObject 返回错误( session 0?)