/**/
/***********************************************
* 类模板显式特化(explicit specialization)
*
* 为了进行特化,首先需要一个通用的版本,称主模板.
* 主模板使用了标准库堆算法. 堆 是一种线性化的树形
* 结构, 将一个值压入一个堆中, 实际上等于将该值插入到一
* 个树形结构中;将一个值从堆中取出就等于移除并返回堆中
* 最大值.
* 但在处理字符的指针时会碰钉子.堆将按照指针的值进
* 行组织. 我们可以提供一个显式特化版本解决此问题(例1)
* 如果希望除了一个针对const char*的Heap外,还希望提
* 供一个针对char *的Heap;(例2)
***********************************************/
// 主模板
template < typename T >
class Heap
... {
private:
std::vector<T> h_;
public:
void push(const T
* 类模板显式特化(explicit specialization)
*
* 为了进行特化,首先需要一个通用的版本,称主模板.
* 主模板使用了标准库堆算法. 堆 是一种线性化的树形
* 结构, 将一个值压入一个堆中, 实际上等于将该值插入到一
* 个树形结构中;将一个值从堆中取出就等于移除并返回堆中
* 最大值.
* 但在处理字符的指针时会碰钉子.堆将按照指针的值进
* 行组织. 我们可以提供一个显式特化版本解决此问题(例1)
* 如果希望除了一个针对const char*的Heap外,还希望提
* 供一个针对char *的Heap;(例2)
***********************************************/
// 主模板
template < typename T >
class Heap
... {
private:
std::vector<T> h_;
public:
void push(const T