使用示例中的C++中的std::is_heap()

使用示例中的C++中的std::is_heap()

C++标准模板库中的 std::is_heap() 函数用于检查给定元素范围是否形成最大堆。当给定元素范围形成最大堆时,它返回True,否则返回False。

头文件:

#include <algorithm>

语法:

is_heap(first, last)

参数: 它需要两个参数,它们是指向范围的第一个和最后一个元素的迭代器。

返回值: 该函数返回以下值:

  • True: 如果范围内的元素 [first,last) 形成最大堆。
  • False: 如果范围内的元素 [first,last) 不形成最大堆。

下面是一个程序,用于说明 std::is_heap() :

程序1:

// C++ program to illustrate
// the std::is_heap()

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

// Driver Code
int main()
{

    // Given list of numbers
    vector<int> arr = { 3, 1, 5, 1, 9, 8 };

    // Check if arr[] forms max-heap or not
    bool isHeap = is_heap(arr.begin(),
                          arr.end());

    if (isHeap) {
        cout << "Forms a Max Heap";
    }
    else {
        cout << "Doesn't forms a Max Heap";
    }
}
Doesn't forms a Max Heap

程序2:

// C++ program to illustrate the std::is_heap()

#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;

// Driver Code
int main()
{

    // Given list of numbers
    vector<int> arr = { 3, 1, 5, 1, 9, 8 };

    // Check if arr[] forms max-heap or not
    bool isHeap = is_heap(arr.begin(),
                          arr.end());

    // isHeap is false then make Max Heap
    // using in built function make_heap
    if (!isHeap) {
        make_heap(arr.begin(), arr.end());
    }

    // Else already a heap
    else {
        cout << "Already Max Heap\n";
    }

    // Print all the elements of arr
    // after make Max Heap
    for (auto& it : arr) {
        cout << it << ' ';
    }
    return 0;
}
9 3 8 1 1 5

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程