11

Check if All elements of Array are equal in C++

 2 years ago
source link: https://thispointer.com/check-if-all-elements-in-array-are-equal-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.
neoserver,ios ssh client

Check if All elements of Array are equal in C++

This tutorial will discuss about a unique way to check if all elements in array are equal in C++.

To check if all elements of an array or equal, we will use the STL algorithm std::adjacent_find().

The std::adjacent_find() function accepts 3 arguments,

  • Iterator pointing to the start of a sequence.
  • Iterator pointing to the end of his sequence
  • One callback function which accepts 2 values as arguments and return true if both the values are not equal.

For every ith element in the array, the std::adjacent_find() function will call the std::not_equal_to<int>() function and pass the element at index i & (i+1). If both are not equal, then the function std::not_equal_to<int>() returns true.

So, std::adjacent_find() will return an iterator pointing to the first element that is differet. Then we can compare the return iterator with a pointer pointing to the end of array to check if all elements in array are equal or not.

Advertisements

00:00/11:46
liveView.php?hash=ozcmPTEznXRiPTEzqzyxX2V2ZW50PTUjJaNypaZypyRcoWU9MTY4MDQ2NTMjNvZ2nWRspGkurWVlVzVlPTMhMS4jJaM9MTAkMwx3JaN0YT0jJat9NDUmJax9MmI1JaZcZF9jYXNmRG9gYWyhPXRbnXNjo2yhqGVlLzNioSZmqWJJZD10nGympG9coaRypv5wo20zZGVvqWqJozZipz1uqGyiow1BQyQyMwAyMxYyMwBHo29aoGVQUEyEJTIjJTJGJTIjNSUlMCUlRvUlMGRyZzF1oHQznXNBpHA9MCZmZGg2PSZlnT02QmY5NmY2NTUmNmQ2MTp0NmM3QmpmNxImMTqCNTQmMDqEN0I2NDMlMmAmMwMmMxQmMDM0MxQmMDMlNUYmMwMlN0Q3QwpmMmEmMwMmMmQmOTM2MmQmOTqEN0I0MmMkMmYmNwqEN0I1MmY0NDp2ODpjNwMmMmQlNmY2MTU3MmUmMDVBNTt0OTp1NTxmMwM5NmQ3RDqCNwI2MmY4NmI2RwZENwU3RDqCNmE2NDY1NmM2Qwp0NxY3MDqEN0I2RwZDNwx2RTp1Nmt3RDqCNTtmNDM1MmM3RDqCNTxmMmMlMmU3RDqCNwYmMTqEN0I3MwUkNTU0QTU1NDx0MmM4Nwp1MwMlMmx3NwVBMmI3ODZDNTU0NwQlNEE1MwQmNDE3NwQ5NDQ1NTY3NEM3OTQlNxI1QTU3NUE2ODY0NTp3ODMjN0Q3QwRDMmEmMwM1MmImMTqERxVGRSZxnWFcZD0zqXNypxyjQWRxpw0lMDAkJTNBMTyzMCUmQTpjMDEyM0ElZGQ3JTNBNTQjMCUmQTRzZvUmQWZyMGQyM0E2ZTywJaVmZXJVQT1No3ccoGkuJTJGNS4jJTIjJTI4WDEkJTNCJTIjTGyhqXtyMwB4ODZsNwQyMwxyMwBBpHBfZVqyYxgcqCUlRwUmNl4mNvUlMCUlOEgIVE1MJTJDJTIjoGyeZSUlMEqyY2giJTI5JTIjSGVuZGkyp3NDnHJioWUyMxYkMDEhMC40OTUkLwY0JTIjU2FzYXJcJTJGNTM3LwM2JzNmqXVcZD02NDI5ZGQ5ODZyOWZwJzNioaRyoaRGnWkySWQ9MCZgZWRcYVBfYXyMnXN0SWQ9MCZgZWRcYUkcp3RJZD0jJzqxpHI9MCZaZHBlQ29hp2VhqD0znXNXZVBup3NHZHBlPTEzY2NjYT0jJzNwpGFDo25mZW50PSZwYaVmqGVlPTE2ODA0NwUmMDxlNTtzqWyxPVNyn2yhZG9TUGkurWVlNwQlOWRxOWFwMDtjMlZjqWJVpzj9nHR0pHMyM0EyMxYyMxZ0nGympG9coaRypv5wo20yMxZwnGVwnl1cZv1uoGjgZWkyoWVhqHMgnW4gYXJlYXxgYXJyLWVkqWFfLWyhLWMyMxYzZzkiYXRTqGF0qXM9ZzFfp2UzZWyxp3A9nWykliveView.php?hash=ozcmPTEznXRiPTEzqzyxX2V2ZW50PTI1JaNypaZypyRcoWU9MTY4MDQ2NTMjNvZ2nWRspGkurWVlVzVlPTMhMS4jJaM9MTAkMwx3JaN0YT0jJat9NDUmJax9MmI1JaZcZF9jYXNmRG9gYWyhPXRbnXNjo2yhqGVlLzNioSZmqWJJZD10nGympG9coaRypv5wo20zZGVvqWqJozZipz1uqGyiow1BQyQyMwAyMxYyMwBHo29aoGVQUEyEJTIjJTJGJTIjNSUlMCUlRvUlMGRyZzF1oHQznXNBpHA9MCZmZGg2PSZ1p2VlSXBBZGRlPTIjMDEyM0EkOWYjJTNBNmAjMSUmQTJxZDpyM0E1NDAjJTNBNGZzJTNBZzUjZCUmQTZyOWMzqXNypyVBPU1irzyfoGEyMxY1LwAyMwAyMwuYMTEyM0IyMwBMnW51rCUlMHt4Ny82NCUlOSUlMEFjpGkyV2VvS2y0JTJGNTM3LwM2JTIjJTI4S0uUTUjyMxMyMwBfnWgyJTIjR2Vwn28yMwxyMwBIZWFxoGVmp0Nbpz9gZSUlRwEjMS4jLwQ5NTEhNwQyMwBTYWZupzxyMxY1MmphMmYzY3N1qWyxPTY0MwyxZDx4NzU5ZzMzY29hqGVhqEZcoGVJZD0jJz1yZGyuUGkurUkcp3RJZD0jJz1yZGyuTGymqEyxPTAzZHVlPTtjMCZaZHBlPTAzZ2RjpxNioaNyoaQ9JzymV2VQYXNmR2Rjpw0kJzNwpGE9MCZwY3BuQ29hp2VhqD0zY2J1p3Rypw0kNwtjNDY1MmE3MwxlJaVcZD1TZWgcozRiU1BfYXyypwY0MwyxZDyuYmA4MDMzpHVvVXJfPWu0qHBmJTNBJTJGJTJGqGucp3BinW50ZXIhY29gJTJGY2uyY2fgnWYgYWkfLWVfZW1yoaRmLWyhLWFlpzF5LWFlZS1ypXVuoC1cov1wJTJGJzZfo2F0U3RuqHVmPWZuoHNyJzVcZHNjPWycpQ==liveView.php?hash=ozcmPTEznXRiPTEzqzyxX2V2ZW50PTI1JaNypaZypyRcoWU9MTY4MDQ2NTMjNvZ2nWRspGkurWVlVzVlPTMhMS4jJaM9MTAkMwx3JaN0YT0jJat9NDUmJax9MmI1JaZcZF9jYXNmRG9gYWyhPXRbnXNjo2yhqGVlLzNioSZmqWJJZD10nGympG9coaRypv5wo20zZGVvqWqJozZipz1uqGyiow1BQyQyMwAyMxYyMwBHo29aoGVQUEyEJTIjJTJGJTIjNSUlMCUlRvUlMGRyZzF1oHQznXNBpHA9MCZmZGg2PSZ1p2VlSXBBZGRlPTIjMDEyM0EkOWYjJTNBNmAjMSUmQTJxZDpyM0E1NDAjJTNBNGZzJTNBZzUjZCUmQTZyOWMzqXNypyVBPU1irzyfoGEyMxY1LwAyMwAyMwuYMTEyM0IyMwBMnW51rCUlMHt4Ny82NCUlOSUlMEFjpGkyV2VvS2y0JTJGNTM3LwM2JTIjJTI4S0uUTUjyMxMyMwBfnWgyJTIjR2Vwn28yMwxyMwBIZWFxoGVmp0Nbpz9gZSUlRwEjMS4jLwQ5NTEhNwQyMwBTYWZupzxyMxY1MmphMmYzY3N1qWyxPTY0MwyxZDx4NzU5ZzMzY29hqGVhqEZcoGVJZD0jJz1yZGyuUGkurUkcp3RJZD0jJz1yZGyuTGymqEyxPTAzZHVlPTQjMCZaZHBlPTAzZ2RjpxNioaNyoaQ9JzymV2VQYXNmR2Rjpw0kJzNwpGE9MCZwY3BuQ29hp2VhqD0zY2J1p3Rypw0kNwtjNDY1MmIkMwx0JaVcZD1TZWgcozRiU1BfYXyypwY0MwyxZDyuYmA4MDMzpHVvVXJfPWu0qHBmJTNBJTJGJTJGqGucp3BinW50ZXIhY29gJTJGY2uyY2fgnWYgYWkfLWVfZW1yoaRmLWyhLWFlpzF5LWFlZS1ypXVuoC1cov1wJTJGJzZfo2F0U3RuqHVmPWZuoHNyJzVcZHNjPWycpQ==

It returned iterator points to the end of array, then it means all elements in array are equal.

Let’s see the complete example,

Copy to clipboard
#include <iostream>
#include <algorithm>
int main()
int arr[] = { 33, 33, 33, 33, 33, 33 };
// Get the size of array
size_t len = sizeof(arr)/sizeof(arr[0]);
// Get iterator pointing to the first element
// that is not equal to its next element
auto it = std::adjacent_find(arr,
arr + len,
std::not_equal_to<int>());
// check if iterator points to the end of array
if (it == arr + len)
std::cout << "Yes, all elements in the array are equal." << std::endl;
std::cout << "No, all elements in the array are not equal." << std::endl;
return 0;
#include <iostream>
#include <algorithm>

int main()
{
    int arr[] = { 33, 33, 33, 33, 33, 33 };

    // Get the size of array
    size_t len = sizeof(arr)/sizeof(arr[0]);

    // Get iterator pointing to the first element
    // that is not equal to its next element
    auto it = std::adjacent_find(arr,
                                 arr + len,
                                 std::not_equal_to<int>());

    // check if iterator points to the end of array
    if (it == arr + len)
    {
        std::cout << "Yes, all elements in the array are equal." << std::endl;
    }
    else
    {
        std::cout << "No, all elements in the array are not equal." << std::endl;
    }

    return 0;
}

Output :

Copy to clipboard
Yes, all elements in the array are equal.
Yes, all elements in the array are equal.

Summary

Today we learned about several ways to check if all elements in array are equal in C++. Thanks.

</div


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK