在CMake中,列表被广泛使用。有时你有两个项目列表(基本上是字符串(,你想考虑它们的交集、差异或联合。就像在这种情况下,我刚刚出现。
如何生成此类交集、差异或并集列表?
注意:输出不需要重复,输入不是真的
假设我们的列表位于变量S
和T
中。
对于工会,请写:
list(APPEND union_list ${S} ${T})
list(REMOVE_DUPLICATES union_list)
对于集合差,请写:
list(APPEND S_minus_T ${S})
list(REMOVE_ITEM S_minus_T ${T})
然后我们使用一些集合恒等式,通过对称差分得到交集:
S∩T = (S∪T(- ∖ (S∆T( S∆T = (S∖T(
- ∪ (T\S(