p181.cpp

来自「代码中包含了部分作者侯捷的<<STL源码剖析>>一书中的」· C++ 代码 · 共 62 行

CPP
62
字号
#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

int main()
{
	{
		int i;
		int ia[9]={0,1,2,3,4,8,9,3,5};
		vector<int>ivec(ia,ia+9);
		
		make_heap(ivec.begin(),ivec.end());
		for(i=0;i<ivec.size();++i)
			cout<<ivec[i]<<' ';
		cout<<endl;
		
		ivec.push_back(7);
		push_heap(ivec.begin(),ivec.end());
		for(i=0;i<ivec.size();++i)
			cout<<ivec[i]<<' ';
		cout<<endl;
		
		pop_heap(ivec.begin(),ivec.end());
		cout<<ivec.back()<<endl;
		ivec.pop_back();
		
		for(i=0;i<ivec.size();++i)
			cout<<ivec[i]<<' ';
		cout<<endl;
		
		sort_heap(ivec.begin(),ivec.end());
		for(i=0;i<ivec.size();++i)
			cout<<ivec[i]<<' ';
		cout<<endl;
	}
	
    {
		int ia[9]={0,1,2,3,4,8,9,3,5};
		make_heap(ia,ia+9);
		
		sort_heap(ia,ia+9);
		for(int i=0;i<9;++i)
			cout<<ia[i]<<' ';
		cout<<endl;
		
		make_heap(ia,ia+9);
		pop_heap(ia,ia+9);
		cout<<ia[8]<<endl;
    }
	
	{
		int ia[6]={4,1,7,6,2,5};
		make_heap(ia,ia+6);
		for(int i=0;i<6;++i)
			cout<<ia[i]<<' ';
		cout<<endl;
    }
	
	return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?