C++-必知必会_类模板显式特化(条款46)

本文详细介绍了C++中的类模板显式特化,包括如何为特定类型创建特化版本,以及特化版本如何与主模板配合。通过示例展示了如何为`const char *`和`char *`创建特化版本,并且讨论了特化版本可以拥有不同于主模板的接口,但建议保持基本功能的一致性。
摘要由CSDN通过智能技术生成
/***********************************************
 * 类模板显式特化(explicit specialization)
 * 
 *       为了进行特化,首先需要一个通用的版本,称主模板.
 *          主模板使用了标准库堆算法.  堆 是一种线性化的树形
 *    结构,    将一个值压入一个堆中, 实际上等于将该值插入到一
 *    个树形结构中;将一个值从堆中取出就等于移除并返回堆中
 *    最大值.
 *          但在处理字符的指针时会碰钉子.堆将按照指针的值进
 *    行组织. 我们可以提供一个显式特化版本解决此问题(例1)
 *          如果希望除了一个针对const char*的Heap外,还希望提
 *    供一个针对char *的Heap;(例2)
**********************************************
*/

// 主模板
template  < typename T >
class  Heap
{
private:
    std::vector
<T> h_;
public:
    
void push(const T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值