# intersect!

intersect!(s1, s2)

Intersects sets `s1` and `s2` and overwrites the set `s1` with the result. If needed, `s1` will be expanded to the size of `s2`.

## Examples

1. Intersect two arrays:

``````julia> arr1 = [1, 2, 3, 4, 5];
julia> arr2 = [4, 5, 6, 7, 8];
julia> intersect!(arr1, arr2)
2-element Array{Int64,1}:
4
5``````

This example finds the common elements between `arr1` and `arr2` and overwrites `arr1` with the result.

2. Intersect two sets:

``````julia> set1 = Set([1, 2, 3, 4, 5]);
julia> set2 = Set([4, 5, 6, 7, 8]);
julia> intersect!(set1, set2)
Set{Int64} with 2 elements:
4
5``````

It performs intersection on two sets `set1` and `set2` and modifies `set1` with the common elements.

3. Intersect arrays and sets:
``````julia> arr = [1, 2, 3, 4, 5];
julia> set = Set([4, 5, 6, 7, 8]);
julia> intersect!(arr, set)
2-element Array{Int64,1}:
4
5``````

It finds the intersection between an array `arr` and a set `set` and updates `arr` with the common elements.

Common mistake example:

``````julia> arr = [1, 2, 3, 4, 5];
julia> intersect!(arr, [4, 5, 6, 7, 8])
ERROR: MethodError: no method matching intersect!(::Array{Int64,1}, ::Array{Int64,1})``````

In this example, the second argument provided is an array instead of a set. The `intersect!` function expects both arguments to be of type `Set`. Make sure to pass sets when using `intersect!`.