list - 如何将 CMake 列表作为集合进行操作?

标签 list cmake set-operations

在 CMake 中,列表被广泛使用。有时您有两个项目列表(基本上是字符串),并且您想要考虑它们的交集、差异或并集。喜欢在 this case刚刚为我想到的。

我如何生成这样的交集、差异或联合列表?

注意:输出不需要重复,输入不需要

最佳答案

假设我们的列表在变量 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)
  • 关于list - 如何将 CMake 列表作为集合进行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59578248/

    相关文章:

    c - 我应该修改什么以仅预处理整个项目中的所有 C 文件?

    Python向所有集合的元素添加一个字符串

    algorithm - 用于快速交叉操作的数据结构?

    c - 如何使用内置库在C程序中执行A-B集运算

    list - 根据长度过滤子集?

    python - Python 中的一个函数可迭代并发列表以用于方程

    c++ - 创建双向链表

    python - 随机排序带有偏差的列表

    cmake - 在 Windows 上使用 CPack 生成源码包

    cmake - 使用 cmake 比较具有不同行尾的_files