01串(二进制串)与集合之间存在天然的对应关系 ← bitset

【集合的二进制表示‌】
● 01 串(二进制串)与集合之间存在天然的对应关系。对应机理为每个二进制位可以表示集合中一个元素的存在(1)或不存在(0)。例如,集合 {a, b, c} 的子集 {a, c} 可以表示为 101(假设顺序为 a、b、c),全集表示为 111,空集表示为 000。

● 集合的二进制表示是一种非常直观且高效的方式,尤其适用于有限集合的子集枚举或状态压缩。

● 一个长度为 n 的二进制串可以表示 2^n 个子集。例如:n=3 时,有 000、001、010、011、100、101、110、111 共8个子集。

【集合运算与位运算】
交集‌ → a & b(按位与)
‌并集‌ → a | b(按位或)
对称差集‌ → a ^ b(按位异或)
差集‌ → a & (~b)

bitset 与集合的关系】
bitset‌ 是一种固定大小的二进制位容器,每个位表示集合中元素的存在(1)或不存在(0)。

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;

int main() {
    bitset<8> setA("11001100"); //{2,3,6,7}
    bitset<8> setB("10101010"); //{1,3,5,7}

    cout<<(setA & setB)<<endl; //10001000
    cout<<(setA | setB)<<endl; //11101110
    cout<<(setA ^ setB)<<endl; //01100110
    cout<<(setA & ~setB)<<endl; //01000100

    return 0;
}
相关推荐
流华追梦110 个月前
(二十六)Java 数据结构
java·数据结构·vector·dictionary·enum·stack·bitset
surpassLiang1 年前
基于BitMap的工作日间隔计算
数据库·bitmap·bitset·工作日计算·postgesql
俊子凤1 年前
bitset的模拟与实现/位运算哈希/位图
算法·哈希算法·位图·bitset