我有一个时间序列数组。在每个时间序列元素上可以评估为真或假的多个条件。我想评估过去特定组合的真实次数。例如,假设我有以下条件:
cond1 = ……. Evaluates to true or false
通过
cond30 = ……. Evaluates to true or false
on time series array element100 cond1和cond7为true,因此我想创建新变量,让它调用truecond并为其分配cond1和cond7。
truecond = cond1 AND cond7
所以我可以查看过去这个组合已经过了多少时间。我可以为所有可能的组合编写case / switch语句,但这非常麻烦。有没有更有效的方法来解决这个问题? 我需要一个起点。感谢
答案 0 :(得分:1)
当基本键和值可计算时(通过在数据流中查找),存储数据的更好方法是将其作为键值对存储在字典中。
看看std :: map。
答案 1 :(得分:0)
您可以将其编码为二进制文件。对于每个条件,给它2的幂,所以你有一个唯一的数字为每个bool组合。即。
truecond = cond1 AND cond7 => 2**0 + 2**6 = 65
结合像HackSaw建议的地图,你可以得到一个你可以为每一步增加的所有组合的地图,从而看出翻转了多少次条件组合。