当前位置:  编程技术>c/c++/嵌入式

c++中template对字符串的处理方法

    来源: 互联网  发布时间:2014-10-26

    本文导语:  C++中的Template作用是把仅类型不同但功能相似的函数合并在一起,但是有时候template中的函数并不能满足所有的类型调用。如下所示: template inline int hash_wrap(const Kty& k) { return (int)k; } 所有的数字类型使用该模板都没有...

C++中的Template作用是把仅类型不同但功能相似的函数合并在一起,但是有时候template中的函数并不能满足所有的类型调用。如下所示:

template 
inline int hash_wrap(const Kty& k)
{
return (int)k;
}

所有的数字类型使用该模板都没有问题,但是string类型却不行,因为不支持有string到int的类型转换(编译过程中)。这样我们就需要在该模板外添加一个对string类型的支持,代码如下:

template 
inline int hash_wrap(conststring & k)
{
return k.size();
}

其中template 表明该函数是模板类型的延伸,表明对原模板的string类型进行改写。

例如下面两个例子所示:

例1:

template 
inline unsigned int get_size(const Kty&k)
{
return sizeof(Kty);
}
template 
inline unsigned int get_size(conststring& k)
{
return k.length() + 1;
}

例2:

template 
inline bool cmp_key(const Kty& k, constchar* dest)
{
return k == *(Kty* )dest;;
}
template 
inline bool cmp_key(const string& k,const char* dest)
{
return strcmp(k.c_str(), dest) == 0;
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.xml.transform接口templates成员方法: newtransformer定义参考
  • PHP模板引擎 FXL Template
  • java命名空间javax.xml.transform接口templates成员方法: getoutputproperties定义参考
  • PHP模板引擎 Template Lite
  • jQuery FAQ 模板 FAQ Template
  • PHP模板引擎 Blitz templates
  • Miscellaneous Container Templates
  • PHP模板引擎 ns-template
  • Ease Template
  • cannot declare '::main' to be template
  • android-gradle-template
  • play2-groovy-templates
  • struts2-remote-template-plugin
  • 后台快速开发框架 struts2-mvc-template
  • 请教:<xsl:template match="/">中,match得值可以是变量吗,如:match="$node"
  • web模板语言 jpc-template
  • Java 模板引擎 jetbrick-template
  • C#模板方法模式(Template Method Pattern)实例教程
  • template 的编程, 程序编译通过, 连接出错
  • PHP DOM Template


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3