c++ 如何避免大小写/切换语句
c++ How to avoid case/switch statement
我有一个时间序列数组。在每个时间序列元素上,许多条件的计算结果可能为 true 或 false。我想评估过去特定组合的次数。例如,假设我有以下条件:
cond1 = ……. Evaluates to true or false
通过
cond30 = ……. Evaluates to true or false
在时间序列数组元素 element100 上,cond1 和 cond7 为真,因此我想创建新变量,让我们称它为 truecond 并将 cond1 和 cond7 分配给它。
truecond = cond1 AND cond7
所以我可以检查一下过去有多少次这种组合是正确的。我可以为所有可能的组合编写一个 case/switch 语句,但这非常麻烦。有没有更有效的方法来解决这个问题?我需要一个起点。谢谢
当基本键和值可计算时(例如,通过在数据流中查找数据),存储数据的更好方法是将其存储为字典中的键值对。
看看 std::map。
您可以将其编码为二进制。 对于每个条件,给它一个 2 的幂,这样你每个布尔组合都有一个唯一的数字。 即
truecond = cond1 AND cond7 => 2**0 + 2**6 = 65
结合像HackSaw建议的地图,您可以拥有所有组合的地图,您可以为每个步骤递增这些组合,从而查看条件组合被翻转了多少次。
相关文章:
- 函数中的切换大小写语句不会切换C++
- 如何在不同的开关大小写语句上使用对象的类成员函数?
- 使用开关大小写语句抽取随机扑克牌等级和花色以显示用户
- 如何使用 clang 格式在交换机中获取单行对齐的大小写语句
- 开关大小写语句中函数中的字符串输入会导致无限循环和绕过输入
- 使用 map<string,int> 在开关大小写语句中使用字符串
- 当C/C++程序切换语句转到未定义的大小写并且缺少默认值时,它的正确行为是什么:
- C ++ if else 语句在开关大小写 - 解释
- 在 do{}while 语句中使用的开关大小写会导致 GoAgain 无法正常工作
- 初始化开关大小写语句中的数组
- 将OSX Clang配置为区分大小写以包含语句
- VS2010上不区分大小写的字符串比较-为每个版本的VS播放#if定义的语句
- 为什么开关大小写语句中不能有变量?
- 开关大小写语句不间断
- 百分比大小写语句
- 如何使用else if语句来比较字母并使其不区分大小写?
- c++ 如何避免大小写/切换语句
- 开关大小写语句中的分号
- 没有基本大小写的递归和递归函数之后的语句
- 错误:跳转到switch语句中的大小写标签