Check if an Array is a Subset of Another Array in C++
source link: https://thispointer.com/check-if-an-array-is-a-subset-of-another-array-in-c/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Check if an Array is a Subset of Another Array in C++
This tutorial will discuss about a unique way to check if an array is a subset of another array in C++.
Suppose we have two arrays,
int arr1[] = {72, 51, 12, 63, 54, 56, 78, 22}; int arr2[] = {63, 54, 56};
Now we want to check if the second array arr2
is a subset of first array arr1
. For this, we are going to use STL algorithm std::includes()
which accepts 2 ranges as arguments.
Basically std::includes()
function will accept 4 arguments i.e.
- Iterator pointing to the start of first array
arr1
. - Iterator pointing to the end of first array
arr1
. - Iterator pointing to the start of second array
arr2
. - Iterator pointing to the end of second array
arr2
.
It returns true if all the elements of the secondary exist in the first range.
Advertisements
But the important point, is that it expects both the arrays to be sorted. Therefore first we will use the std::sort()
function to sort all the elements of both the arrays i.e. arr1
and arr2
. Then we will use the std::includes()
function to check if all the elements of second array exist in the first array or not.
Let’s see the complete example,
#include <iostream> #include <vector> #include <algorithm> int main() { int arr1[] = {72, 51, 12, 63, 54, 56, 78, 22}; int arr2[] = {63, 54, 56}; // Sort the numbers in array arr1 std::sort(std::begin(arr1), std::end(arr1)); // Sort the numbers in array arr2 std::sort(std::begin(arr2), std::end(arr2)); // Check if array arr2 includes all the elements // of array arr1 bool result = std::includes( std::begin(arr1), std::end(arr1), std::begin(arr2), std::end(arr2)); if(result) { std::cout << "Yes, Array arr2 is a subset of Array arr1" << std::endl; } else { std::cout << "No, Array arr2 is not a subset of Array arr1" << std::endl; } return 0; }
Output :
Yes, Array arr2 is a subset of Array arr1
Summary
Today we learned about a way to check if an array is a subset of another array in C++. Thanks.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK