Program to check if an Array is Palindrome or not using STL in C++

Given an array, the task is to determine whether an array is a palindrome or not, using STL in C++.


Input: arr[] = {3, 6, 0, 6, 3}
Output: Palindrome

Input: arr[] = {1, 2, 3, 4, 5}
Output: Not Palindrome


  • Get the reverse of the Array using reverse() method, provided in STL.
  • Initialise flag to unset int flag = 0.
  • Loop the array till size n and check if the original array and the reversed array are same. If not set flag = 1
  • After the loop has ended, If flag is set the print “Not Palindrome” else print “Palindrome”

Below is the implementation of above Approach:





// C++ program to check if an Array
// is Palindrome or not using STL
#include <bits/stdc++.h>
using namespace std;
void palindrome(int arr[], int n)
    // Initialise flag to zero.
    int flag = 0;
    // Create another array
    // to store the original array
    int arr2[n];
    memcpy(arr2, arr, n * sizeof(int));
    // Reverse the array
    reverse(arr, arr + n);
    // Check if the array is Palindrome
    for (int i = 0; i < n; i++)
        if (arr[i] != arr2[i]) {
            flag = 1;
    // Print the result
    if (flag == 0)
        cout << "Palindrome\n";
        cout << "Not Palindrome\n";
int main()
    // Get the array
    int arr[] = { 1, 2, 3, 2, 1 };
    // Compute the size
    int n = sizeof(arr) / sizeof(arr[0]);
    palindrome(arr, n);
    return 0;




Related Articles:

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using or mail your article to See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.