Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chương trình C++ tìm phần tử có trong mảng đầu nhưng không có trong mảng thứ hai

Cho hai mảng A và B. Tìm phần tử có trong A nhưng không trong B. Đây là phép hiệu tập hợp (set difference).

Ví dụ mã nguồn

#include <iostream>
#include <set>
#include <algorithm>
#include <vector>
using namespace std;

void setDiffResults(int A[], int B[], int An, int Bn) {
    sort(A, A + An);
    sort(B, B + Bn);
    vector<int> res(An);
    vector<int>::iterator it;
    vector<int>::iterator it_res = set_difference(A, A + An, B, B + Bn, res.begin());
    cout << "Elements are: ";
    for (it = res.begin(); it < it_res; ++it)
        cout << *it << " ";
}

int main() {
    int A[] = {9, 4, 5, 3, 1, 7, 6};
    int B[] = {9, 3, 5};
    int An = 7, Bn = 3;
    setDiffResults(A, B, An, Bn);
}

Kết quả đầu ra

Elements are: 1 4 6 7