Предыдущий пост -
Следующий пост -

std::make_heap(), std::push_heap(), std::pop_heap(), std::sort_heap().

Рубрика: Алгоритмы, Дата: 7 July, 2013, Автор:
Tags: ,

make_heap – подготавливает последовательность к использованию в качестве кучи.

pop_heap() – удаляет элемент из кучи.

push_heap() – добавляет элемент к куче.

sort_heap() – сортирует кучу.

#include <iostream>
using std::cout;
using std::endl;
#include <vector>
using std::vector;
#include <algorithm>
using std::make_heap;
using std::push_heap;
using std::pop_heap;
using std::sort_heap;

int main()
{
	int mass[]={30,40,20,10};
	vector<int> v(mass,mass+4);

	//создаем кучу
	make_heap(v.begin(),v.end());
	//максимальный элемент кучи
	cout <<"max= "<<v.front()<<endl;//40
	//удалим элемент из кучи
	pop_heap(v.begin(),v.end());
	v.pop_back();
	cout <<"max= "<<v.front()<<endl;//30
	//добавим 99
	v.push_back(99);
	push_heap(v.begin(),v.end());
	cout <<"max= "<<v.front()<<endl;//99
	//сортируем кучу
	sort_heap(v.begin(),v.end());
	//вывод результата
	for(int i=0;i<v.size();i++)
		cout <<v[i]<<' ';
	cout <<endl;

	return 0;
}

[youtube]http://www.youtube.com/watch?v=FexLbdjFxNU[/youtube]

rss