C++ Algorithm set_intersection()
C++ Algorithm set_intersection() function is used to find the intersection of two sorted ranges[first1, last1) and [first2, last2), which is formed only by the elements that are present in both sets.
Elements are compared using operator < for the first version or using the given binary comparison function comp for the second version.
Syntax
Parameter
first1: An input iterator pointing to the first element in the first of two sorted source sequence.
last1: An input iterator pointing to the past last element in the first of two sorted source sequence.
first2: An input iterator pointing to the first element in the second sorted source sequence.
last2: An input iterator pointing to the past last element in the second sorted source sequence.
comp: A user-defined binary predicate function that accepts two arguments and returns true if the two arguments are in order and false otherwise. It follows the strict weak ordering to order the elements.
result: An output iterator addressing to the position of the first element in the destination range .
Return value
This function returns an iterator to the end of the constructed range.
Complexity
Complexity is linear in the distance between [first1, last1) and [first2, last2): performs up to 2*(count1+count2)-1 comparisons. Where count1 = last1- first1 and count2 = last2- first2.
Data races
The object in the range [first1, last1) and [first2. last2) are accessed.
The object in the range between result and returned value are modified.
Exceptions
This function throws an exception if any of element comparisons, the element assignments or an operation on iterator throws an exception.
Note: The invalid parameters cause an undefined behavior.
Example 1
Let’s see the simple example to demonstrate the use of set_intersection():
Output:
2 4
Example 2
Let’s see another simple example:
Output:
First array contains : 5 10 15 20 25 Second array contains : 50 40 30 20 10 The union has 2 elements: 10 20
Example 3
Let’s see another simple example to find the list of all students who are attending both subjects:
Output:
Students in first subject : Nikita Divya Deep Kashish Students in second subject : Aman Nikita Amita Deep Students attending both subjects are : Deep Nikita
Example 4
Let’s see a simple example:
Output:
B C