How to find Intersection of Two Sets in C++


How to find Intersection of Two Sets in C++ ?

Answer

In C++, you can find the intersection of two sets using the set_intersection algorithm from the header.



✐ Examples

1 Find Intersection of Two Sets using set_intersection algorithm

In this example,

  1. We include the necessary header files, including for input and output and for using the set_intersection algorithm.
  2. We define two sets, set1 and set2, as arrays.
  3. We sort both sets using the std::sort function.
  4. We declare a new array intersection to store the intersection of the two sets.
  5. We use the std::set_intersection algorithm to find the intersection of set1 and set2, storing the result in intersection.
  6. We print the elements of intersection to display the intersection of the two sets.

C++ Program

#include <iostream>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> set1 = {1, 2, 3, 4};
    std::vector<int> set2 = {3, 4, 5, 6};
    std::vector<int> intersection(set1.size() + set2.size());

    std::sort(set1.begin(), set1.end());
    std::sort(set2.begin(), set2.end());

    auto it = std::set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), intersection.begin());
    intersection.resize(it - intersection.begin());

    std::cout << "Intersection of set1 and set2:\n";
    for (int i : intersection) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

Output

Intersection of set1 and set2:
3 4 

2 Find Intersection of Two Sets with Duplicate Elements

In this example,

  1. We include the necessary header files, including for input and output and for using the set_intersection algorithm.
  2. We define two sets, set1 and set2, as arrays.
  3. We sort both sets using the std::sort function.
  4. We declare a new array intersection to store the intersection of the two sets.
  5. We use the std::set_intersection algorithm to find the intersection of set1 and set2, storing the result in intersection.
  6. We print the elements of intersection to display the intersection of the two sets.

C++ Program

#include <iostream>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> set1 = {1, 2, 2, 3, 4};
    std::vector<int> set2 = {2, 2, 3, 4, 5};
    std::vector<int> intersection(std::min(set1.size(), set2.size()));

    std::sort(set1.begin(), set1.end());
    std::sort(set2.begin(), set2.end());

    auto it = std::set_intersection(set1.begin(), set1.end(), set2.begin(), set2.end(), intersection.begin());
    intersection.resize(it - intersection.begin());

    std::cout << "Intersection of set1 and set2 with duplicates:\n";
    for (int i : intersection) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

Output

Intersection of set1 and set2 with duplicates:
2 2 3 4 

Summary

In this tutorial, we learned How to find Intersection of Two Sets in C++ language with well detailed examples.




More C++ Sets Tutorials

  1. How to create an Empty Set in C++ ?
  2. How to Initialize a Set in C++ ?
  3. How to Get Length of a Set in C++ ?
  4. How to create a Set of size N in C++ ?
  5. How to create a Set of Numbers from 1 to N in C++ ?
  6. How to create a Set of integers in C++ ?
  7. How to create a Set of Strings in C++ ?
  8. How to Access Items in a Set in C++ ?
  9. How to get a Random Item in a Set in C++ ?
  10. How to Iterate Over a Set in C++ ?
  11. How to check if a Set is Empty in C++ ?
  12. How to check if a Set is Not Empty in C++ ?
  13. How to get Subset from a Set in C++ ?
  14. How to check if a Specific Item is present in the Set in C++ ?
  15. How to check if a Set contains all the items of Another Set in C++ ?
  16. How to Sort Items of a Set in C++ ?
  17. How to Copy a Set in C++ ?
  18. How to add an Item to a Set in C++ ?
  19. How to find Union of Two Sets in C++ ?
  20. How to find Intersection of Two Sets in C++ ?
  21. How to check if Two Sets are Equal in C++ ?
  22. How to Convert a Set of Integers to a Set of Strings in C++ ?
  23. How to Convert a Set of Strings to a Set of Integers in C++ ?
  24. How to Convert a Set of Floats to a Set of Strings in C++ ?
  25. How to Filter Items of a Set based on a Condition in C++ ?
  26. How to Remove Specific Item from a Set in C++ ?
  27. How to Remove Items from Set based on a Condition in C++ ?
  28. How to create a Set of Sets in C++ ?