C++ STL堆相关函数的简单使用
简单介绍下堆相关的函数的使用
堆不是容器,而是组织容器元素的一种特别方式。
只能确定堆的范围,即开始和结束迭代器指定的范围。
这意味着可以用容器中的元素子序列创建堆,可以在已生成的堆中添加元素。
以vector容器为例:
为了简化代码,vector的读取和输出被打包为两个函数 ↓
vector<int> get_input()
{
int n;
cin>>n;
vector<int> nums;
for(int i=0; i<n; i++)
{
int x;
cin>>x;
nums.insert(nums.end(), x);
}
return nums;
}
void out(vector<int> nums)
{
for(int i=0; i<nums.size(); i++)
{
cout<<nums[i]<<" ";
}
cout<<endl;
}
1.创建堆
/*
function : 将指定地址段的序列容器中的数据根据比较规则组织成堆
param 1 : 序列式容器的起始地址
param 2 : 序列式容器的结束地址
param 3 : 比较函数,默认使用less<>,即创建大顶堆
return : ---
*/
make_heap(param1, param2, param3