"BitVector" (数据结构)
"BitVector"
表示布尔值向量或根据位元数组构建的集合的成员.
更多信息
- "BitVector" 是一种非常紧凑的数据表示,只能采用两个值,例如布尔数据,也可以是集合的高效表示.
- 位元的编号与 BitSet 等其他位元运算一致,因此 0 表示第一位.
-
CreateDataStructure[ "BitVector",length] 创建新的指定 length 的 "BitVector" CreateDataStructure["BitVector",blist] 根据含有 True 和 False 的布尔列表 blist 创建新的 "BitVector" Typed[x,"BitVector"] 设 x 的类型为 "BitVector" - 对于类型为 "BitVector" 的数据结构,可进行以下运算:
-
ds["BitAnd",dsi] 用按位 And 将 ds 和 dsi 中的位元组合在一起 用时: O(n/8) ds["BitClear",k] 将 ds 中的第 k 个位元设为 0 用时:O(1) ds["BitClearAll"] 将 ds 中的所有位元设为 0 用时:O(n) ds["BitCount"] 返回 ds 中被设为 1 的位元的数量 用时:O(n) ds["BitGet",k] 获取 ds 中的第 k 个位元 用时:O(1) ds["BitInvert",k] 反转 ds 中第 k 个位元的值 用时:O(1) ds["BitList"] 返回 ds 中被设为 1 的位元的列表 用时:O(n) ds["BitNand",dsi] 用逐位 Nand 组合 ds 和 dsi 中的位元 用时:O(n/8) ds["BitNor",dsi] 用逐位 Nor 组合 ds 和 dsi 中的位元 用时:O(n/8) ds["BitNot",dsi] 翻转 ds 中的位元 用时:O(n/8) ds["BitOr",dsi] 用按位 Or 将 ds 和 dsi 中的位元组合在一起 用时: O(n/8) ds["BitSet",k] 将 ds 中的第 k 个位元设为 1 用时:O(1) ds["BitTest",k] 如果 ds 中的第 k 个位元被设为 1 则返回 True,否则设为 False 用时:O(1) ds["BitXnor",dsi] 用逐位 Xnor 组合 ds 和 dsi 中的位元 用时:O(n/8) ds["BitXor",dsi] 用按位 Xor 将 ds 和 dsi 中的位元组合在一起 用时: O(n/8) ds["Boole"] 返回一个数值数组,其中 ds 中的置位位元为 1,其他位元为 0 用时:O(n) ds["Capacity"] 返回可以存储在 ds 中的位元的数量 用时:O(1) ds["Copy"] 返回 ds 的拷贝 用时:O(n) ds["Length"] 返回 ds 中可以存储的位元的数量 用时:O(1) ds["OffBitList"] 返回 ds 中关闭的位元的列表 用时:O(n/8) ds["OffBitList",dsi] 返回在 ds 和 dsi 中皆 Off 的位元的列表 用时:O(n/8) ds["OnBitList",dsi] 返回在 ds 和 dsi 中皆 On 的位元的列表 用时: O(n/8) ds["Visualization"] 返回 ds 的可视化 用时:O(n) - 还支持以下函数:
-
dsi===dsj 如果 dsi 等于 dsj 则为 True FullForm[ds] ds 的完全形式 Information[ds] 关于 ds 的信息 InputForm[ds] ds 的输入形式 Normal[ds] 将 ds 转换成普通表达式
范例
打开所有单元关闭所有单元基本范例 (3)
可用 CreateDataStructure 创建新的 "BitVector":
范围 (1)
信息 (1)
可用 CreateDataStructure 创建新的 "BitVector":