📅  最后修改于: 2023-12-03 14:39:57.502000             🧑  作者: Mango
在C++标准库中,我们可以使用std::is_heap()函数来判断一个数组是否是一个堆。本文将为您介绍std::is_heap()函数的用法以及示例代码。
C++标准库中的std::is_heap()函数用于判断一个数组是否是一个堆。
函数声明如下:
template< class RandomIt >
bool is_heap( RandomIt first, RandomIt last );
参数说明:
返回值说明:
下面是一个使用std::is_heap()函数判断一个数组是否是一个大根堆的示例代码:
#include <iostream>
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> v{ 3, 5, 9, 11, 13, 7, 1 };
if(std::is_heap(v.begin(), v.end()))
{
std::cout << "v is a heap." << std::endl;
}
else
{
std::cout << "v is not a heap." << std::endl;
}
std::make_heap(v.begin(), v.end());
if(std::is_heap(v.begin(), v.end()))
{
std::cout << "v is a max heap." << std::endl;
}
else
{
std::cout << "v is not a max heap." << std::endl;
}
return 0;
}
输出结果:
v is not a heap.
v is a max heap.
在此示例代码中,我们首先定义了一个包含一些整数的vector。然后,我们使用std::is_heap()函数来判断这个vector是否是大根堆。
由于此时该vector并不是大根堆,所以输出结果为“v is not a heap.”。
接下来,我们使用std::make_heap()函数将该vector转换为大根堆。然后,我们再次使用std::is_heap()函数来判断该vector是否是大根堆。
由于此时该vector是大根堆,所以输出结果为“v is a max heap.”。
std::is_heap()函数是C++标准库中的一个非常有用的函数,它可以轻松判断一个数组是否是堆。在实际编程中,我们可以通过std::is_heap()函数来优化程序中与堆相关的代码。