is_heap() in C++ STL

The C++ Standard Library consists of the header, <algorithm> which defines a collection of functions (principally designed to deal with a range of elements). is_heap() is a method in the STL that tests if a certain range of a container is a heap.

Syntax:

is_heap( iterator_begin, iterator_end, comparator ); //comparator is optional

Parameters: The is_heap() method accepts 3 parameters

  • iterator_begin: Iterator to the initial position of heap
  • iterator_end: Iterator to the final position of heap ( Note: the range is [iterator_begin,iterator_end) )
  • comparator: Binary function that accepts two elements in the range as arguments, and returns a value convertible to bool.

Return value: true if range is a heap, false otherwise

Example of is_heap() method

#include<iostream>
#include<algorithm>
#include<vector>

using namespace std;

int main()
{
    vector<int> v;
    v.push_back(4);
    v.push_back(3);
    v.push_back(8);
    v.push_back(-5);
    v.push_back(7);

    if(!is_heap(v.begin(), v.end()))
    {
        cout<<"It's not a heap"<<endl;
        make_heap(v.begin(), v.end());
    }

    if(is_heap(v.begin(), v.end()))
    {
        cout<<"make_heap ordered vector into heap!"<<endl;
    }
}

Output:

It's not a heap
make_heap ordered vector into heap!

This article is written by

Please comment below, if you have any doubts or find any error in the above article.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top