当前位置: 首页 > 编程笔记 >

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

汤兴生
2023-03-14
本文向大家介绍c++中template对字符串的处理方法,包括了c++中template对字符串的处理方法的使用技巧和注意事项,需要的朋友参考一下

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

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

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

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

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

例如下面两个例子所示:

例1:

template <class Kty>
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 <class Kty>
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;
}
 类似资料:
  • 本文向大家介绍深入解析C++中的字符数组和处理字符串的方法,包括了深入解析C++中的字符数组和处理字符串的方法的使用技巧和注意事项,需要的朋友参考一下 C++字符数组 用来存放字符数据的数组是字符数组,字符数组中的一个元素存放一个字符。字符数组具有数组的共同属性。由于字符串应用广泛,C和C++专门为它提供了许多方便的用法和函数。 字符数组的定义和初始化 定义字符数组的方法与前面介绍的类似。例如:

  • 本文向大家介绍C#实现对Json字符串处理实例,包括了C#实现对Json字符串处理实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现对Json字符串处理方法,分享给大家供大家参考。具体分析如下: 一般对于web应用开发人员来说对Json字符串都会很熟悉,其实在很多请求我们返回的都是Json字符串。那对于C#代码如何处理Json字符串呢,.Net封装了一个类叫做JavaScript

  • StringBuffer 是一个字符串拼接工具,和java中的StringBuilder类似。对于那些需要大量的字符串连接的时候,用 StringBuffer 更高效一些。它实现了以下API: class StringBuffer { public function __construct($str); public function isEmpty(); publi

  • 字符串在我们平常的Web开发中经常用到,包括用户的输入,数据库读取的数据等,我们经常需要对字符串进行分割、连接、转换等操作,本小节将通过Go标准库中的strings和strconv两个包中的函数来讲解如何进行有效快速的操作。 字符串操作 下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档。 func Contains(s, substr string)

  • 函数 说明 Series.str.capitalize() 将 Series / 索引中的字符串转换为大写。 Series.str.cat([others, sep, na_rep, join]) 使用给定的分隔符连接 Series / 索引中的字符串。 Series.str.center(width[, fillchar]) 用附加字符填充 Series / 索引中字符串的左侧和右侧。 Seri

  • 本文向大家介绍C语言中字符和字符串处理(ANSI字符和Unicode字符),包括了C语言中字符和字符串处理(ANSI字符和Unicode字符)的使用技巧和注意事项,需要的朋友参考一下 我们知道,C语言用char数据类型表示一个8位的ANSI字符,默认在代码中声明一个字符串时,C编译器会把字符串中的字符转换成由8位char数据类型构成的一个数组: Microsoft的C/C++编译器定义了一个内建的