作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
(我很抱歉,如果这是直截了当的,我不太精通 C++)
我有
#include <llvm/ADT/BitVector.h>
查看定义文件,它定义了
// Intersection, union, disjoint union
bitVector &operator&=(const BitVector RHS) { ... }
我想做两个位 vector 的并集;这似乎是交集的定义,所以我猜交集应该是这样的:
bitVector1 &= bitVector2;
这是正确的吗?再往下,它声明,不加评论,
bitVector &operator|=(const bitVector &RHS) { ... }
假设这是 union 运算符是否正确? (位运算为|=)
感谢您的帮助!
最佳答案
&=
对 LHS 和 RHS BitVector
的各个元素执行逻辑与 操作数并将结果存储在 LHS 操作数中。
|=
对 LHS 和 RHS BitVector
的各个元素执行逻辑或 操作数并将结果存储在 LHS 操作数中。
一个最小的例子:
#include <iostream>
#include <llvm/ADT/BitVector.h>
llvm::BitVector bitVector1(10, true);
llvm::BitVector bitVector2(10, false);
llvm::BitVector bitVector3(10, true);
int main()
{
for(int i = 0; i < bitVector1.size(); i++)
std::cout << bitVector1[i] << ' ';
std::cout << '\n';
bitVector2[4] = true; //5th element set to true
bitVector1 &= bitVector2;
for(int i = 0; i < bitVector1.size(); i++)
std::cout << bitVector1[i] << ' ';
std::cout << '\n';
bitVector1 |= bitVector3;
for(int i = 0; i < bitVector1.size(); i++)
std::cout << bitVector1[i] << ' ';
std::cout << '\n';
}
输出:
1 1 1 1 1 1 1 1 1 1
0 0 0 0 1 0 0 0 0 0
1 1 1 1 1 1 1 1 1 1
关于c++ - 如何在 LLVM Bitvectors 上操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54977419/
我是一名优秀的程序员,十分优秀!