In this article, we will discuss how to compare two arrays in C++.

**Table Of Contents**

## Problem Description

Here, we are given two arrays, and we have to find if they are equal or not.

**Input**

int arr1[] = {12, 56, 823, 7, 1023}; int arr2[] = {12, 56, 823, 7, 1023};

**Output**

Both are equal

There are two method to compare array for equality in C++. Let’s see how we can do it,

## Compare Arrays using Linear traversal (Iterative Method)

In this method, we will iterate the whole array

### Frequently Asked:

- Pass an Array by reference to function in C++
- Check if Array Contains Only Empty Strings in C++
- Declare an Array in C++
- Check if All elements in Array are Zero in C++

These are following steps :

- Firstly we check the size of both array.
- If size are not equal then array are not equal.
- Initialize a variable
**isequal**with true - If size are equal then iterate a for loop and compare all values of an array with another array
- If we find any index where values are not equal break the loop and set the value of
**isequal**to false. - Print the final answer

`Time Complexity: O(n)`

`Space Complexity: O(1)`

**Example**

// C++ program to Compare array for equality #include <iostream> using namespace std; // Driver Code int main() { int arr1[] = {12, 56, 823, 7, 1023}; int arr2[] = {12, 56, 823, 7, 1023}; // n1 is the size of array 1 int n1 = sizeof(arr1) / sizeof(arr1[0]); // n2 is the size of array 2 int n2 = sizeof(arr2) / sizeof(arr2[0]); //Intialize a variable bool isequal = true; if(n1 != n2) { isequal = false; } else { // Iterate over the array for(int i=0; i < n1; i++) { if(arr1[i] != arr2[i]) { isequal = false; break; } } } if(isequal) { cout<<"Both Arrays are equal" << endl; } else { cout<<"Both Arrays are not equal" << endl; } return 0; }

**Output**

Both Arrays are equal

Let’s take another example where array are not equal

// C++ program to Compare array for equality #include <iostream> using namespace std; // Driver Code int main() { int arr1[] = {12, 56, 823, 17, 1023}; int arr2[] = {12, 56, 823, 7, 1023}; // n1 is the size of array 1 int n1 = sizeof(arr1) / sizeof(arr1[0]); // n2 is the size of array 2 int n2 = sizeof(arr2) / sizeof(arr2[0]); //Intialize a variable bool isequal = true; if(n1 != n2) { isequal = false; } else { // Iterate over the array for(int i=0; i < n1; i++) { if(arr1[i] != arr2[i]) { isequal = false; break; } } } if(isequal) { cout<<"Both Arrays are equal" << endl; } else { cout<<"Both Arrays are not equal" << endl; } return 0; }

**Output**

Both Arrays are not equal

## Compare Arrays using STL function equal()

In this method we use a STL function to compare array for equality.

**STL function is : equal()**

bool equal (InputIterator1 first1, InputIterator1 last1, InputIterator2 first2);

It compares the element in range **[first1,last1)** with the elements in range starting from **first2**.

`Time Complexity: O(n)`

`Space Complexity: O(1)`

**Example**

// STL Function to compare array for equality #include <iostream> using namespace std; // Driver Code int main() { int arr1[] = {12, 56, 823, 7, 1023}; int arr2[] = {12, 56, 823, 7, 1023}; // n1 is the size of array 1 int n1 = sizeof(arr1) / sizeof(arr1[0]); // n2 is the size of array 2 int n2 = sizeof(arr2) / sizeof(arr2[0]); // equal() function return bool // 1 if both are equal // 0 of both are not equal if(equal(arr1, arr1 + n1, arr2)) { cout<<"Both Arrays are equal" << endl; } else { cout<<"Both Arrays are not equal" << endl; } return 0; }

**Output**

Both Arrays are equal

Let’s take another example where element doestn’t exist

// STL Function to compare array for equality #include <iostream> using namespace std; // Driver Code int main() { int arr1[] = {12, 56, 823, 27, 1023}; int arr2[] = {12, 56, 823, 7, 1023}; // n1 is the size of array 1 int n1 = sizeof(arr1) / sizeof(arr1[0]); // n2 is the size of array 2 int n2 = sizeof(arr2) / sizeof(arr2[0]); // equal() function return bool // 1 if both are equal // 0 of both are not equal if(equal(arr1, arr1 + n1, arr2)) { cout<<"Both Arrays are equal" << endl; } else { cout<<"Both Arrays are not equal" << endl; } return 0; }

**Output**

Both Arrays are not equal

## Summary

We have seen two different method to compare arrays for equality in C++. One is the naive solution. Another one is using the STL function equal(). Every Method has it’s own time complexity and space complexity.