如何将数组的元素与另一个数组的所有元素进行比较

时间:2019-06-13 14:11:26

标签: c++ arrays struct codeblocks

我有2个数组:a [] = {1,2,3,4,5,6}和b [] = {1,2,6}。如何比较数组a中的所有元素和数组b中的所有元素。例如,我将a中的第一个元素与b中的所有元素进行比较,如果它们不相等,则会显示并继续检查。所以毕竟我需要得到c [] = {3,4,5}。

请帮助我。

for(i=0;i<n;i++)
{
    for(j=0;j<k;j++)
    {
        if(sf[i].r != temp[j].r)
        {
            cout<<sf[i].r<<" ";
        }
    }
}

其中sf [] .r = {1,2,2,2,3,5,6,6,7,8,8}和temp [] .r = {1,3,5,7}。输出必须为{2,2,2,6,6,8,8}。

2 个答案:

答案 0 :(得分:1)

只需使用std::vector<int>来建立您的结果,就像这样:

std::vector<int> set_difference;
for (int elem_a : a)
{
    if (std::find(std::begin(b), std::end(b), elem_a) == std::end(b))
    {
        set_difference.push_back(elem_a);
    }
}

答案 1 :(得分:0)

int a[] = { 1, 2, 3, 4, 5, 6 };
int b[] = { 1, 3, 6, 2, 5, 9 };
std::vector<int> c;

for (int i = 0; i < sizeof(a); i++)
{
    for(int j = 0; j < sizeof(b); j++)
    {
        if (a[i] == b[j])
            std::cout << a[i] << " equals " << b[j] << std::endl;
        else
        {
            std::cout << a[i] << "not equals " << b[j] << std::endl;
            c.push_back(a[i]);
        }
    }
}