【发布时间】:2016-02-01 13:22:26
【问题描述】:
我想组合运行长度编码方案的三种变体(游程是累积的,因此是变体)。
让我们从其中两个开始:
第一个包含布尔值列表,第二个包含计数器列表。假设第一个看起来如下:(值:该值的位置):
[(true:6), (false:10), (true:14), (false:20)]
// From 1 to 6, the value is true
// From 7 to 10, the value is false
// From 11 to 14, the value is true
// From 15 to 20, the value is false
第二个看起来如下(再次(值:该值的位置)):
[(1:4), (2:8), (4:16), (0:20)]
// From 1 to 4, the value is 1
// From 5 to 8, the value is 2
// From 9 to 16, the value is 4
// From 17 to 20, the value is 0
如您所见,两种情况下的位置略有不同:
Case 1 : [6, 10, 14, 20]
Case 2 : [4, 8, 16, 20]
我想通过计算它们的联合来组合这些“位置数组”:
[4, 6, 8, 10, 14, 16, 20]
一旦我有了这个,我就会从那里推导出新的方案:
[(true:4), (true:6), (false:8), (false:10), (true:14), (false:16), (false:20)]
[(1:4), (2:6), (2:8), (4:10), (4:14), (4:16), (0:20)]
我想知道:是否有任何 C++ 标准类型/类可以包含“数组”[6、10、14、20] 和 [4、8、16、20],计算它们的并集并对其进行排序?
谢谢
多米尼克
【问题讨论】: