C++ 对仅包含0和1的两个向量应用or(| |)运算符

C++ 对仅包含0和1的两个向量应用or(| |)运算符,c++,c++11,vector,c++14,C++,C++11,Vector,C++14,我有两个向量: A={1,0,1,1}, B={0,1,1,1}。 如何对这两个变量应用or运算符,以便得到向量: C={0,0,1,1}。您可以使用索引以元素方式循环它们 #include <iostream> #include <vector> int main() { std::vector<int> A = {1, 0, 1, 1}; std::vector<int> B = {0, 1, 1, 1}; std:

我有两个向量: A={1,0,1,1}, B={0,1,1,1}。 如何对这两个变量应用or运算符,以便得到向量:
C={0,0,1,1}。

您可以使用索引以元素方式循环它们

#include <iostream>
#include <vector>

int main()
{
    std::vector<int> A = {1, 0, 1, 1};
    std::vector<int> B = {0, 1, 1, 1};

    std::vector<int> C(A.size());
    for (std::size_t i = 0; i < A.size(); ++i)
    {
        C[i] = A[i] && B[i];
    }

    for (auto value : C)
    {
        std::cout << value << " ";
    }
}
#包括
#包括
int main()
{
向量A={1,0,1,1};
向量B={0,1,1,1};
向量C(A.size());
对于(std::size_t i=0;istd::cout您可以使用索引以元素方式循环它们

#include <iostream>
#include <vector>

int main()
{
    std::vector<int> A = {1, 0, 1, 1};
    std::vector<int> B = {0, 1, 1, 1};

    std::vector<int> C(A.size());
    for (std::size_t i = 0; i < A.size(); ++i)
    {
        C[i] = A[i] && B[i];
    }

    for (auto value : C)
    {
        std::cout << value << " ";
    }
}
#包括
#包括
int main()
{
向量A={1,0,1,1};
向量B={0,1,1,1};
向量C(A.size());
对于(std::size_t i=0;istd::vector C;
std::transform(A.begin(),A.end(),B.begin(),
std::back_插入器(C),std::logical_和();
std::vector C;
std::transform(A.begin(),A.end(),B.begin(),
std::back_插入器(C),std::logical_和();

你说你想使用OR,但你预期的输出显示AND。是哪一个?你尝试了什么?听起来你想要AND操作符,而不是OR操作符…
1011
0111
=
1111
vs
1011
^
0111
=
0011
根据你的使用情况,可能值得考虑。As问题被标记为
vector
似乎您正在寻找动态位集。为此,
std::vector
以及
std::vector
(由于后者的特殊性质)应该避免。如果动态位集确实是您要寻找的,那么我下面链接的Q&a可能是这个问题的合适副本。另请参阅和。您可能重复说您想使用或,但您预期的输出提示和。是哪一个?您尝试了什么?听起来您想要的是and运算符,而不是OR运算符运算符…
1011
V
0111
=
1111
vs
1011
^
0111
=
0011
取决于您的用例,可能值得考虑。由于问题被标记为
vector
,您似乎在寻找一个动态位集。为此,
std::vector
以及
std::vector
>(由于后者的特殊性质)应该避免。如果您确实在寻找动态位集,那么我下面链接的Q&a可能是这个问题的合适副本。另请参见和。的可能副本还需要检查
B.size()>=a.size()如果不是真的,则行为是未定义的。也需要检查<代码> b siz()> = siz()/c>。如果行为不正确,则行为未定义。如果数组是固定大小的,也可以考虑使用<代码> STD::BITSET 。如果数组是固定大小的,也可以考虑使用<代码> STD::BITSET 。