首页 > 其他分享 >const char*的全特化

const char*的全特化

时间:2024-06-21 22:09:48浏览次数:22  
标签:特化 hashValue const char size 指针

const char*的全特化

今天再写散列表时使用了模板,想要对C风格字符串进行模板全特化时却遇到了这个问题:

size_t Hash(const Type& key) const;	// 声明

// 定义
template <>
size_t HashTblSP<const char*>::Hash(const const char*& key) const
{
    size_t hashValue;
    for (hashValue = 0; *key != '\0'; hashValue = (hashValue << 5) + *key++);
    return hashValue % m_HashTable.size();
}

在声明中使用的是引用传递,于是我想着将形参写为const const char*&类型,但编译器报出声明与定义不兼容,那便是形参错了。仔细想一想改为了const char* const&,因为声明中传入的是常量左值引用,也就是内容不能更改的原实参,将模板特化为指针,那么声明中的const便是修饰指针,也就是指针常量指针的指向不能改变。第一次遇到这种情况,来记录记录,果然const这个关键字还是要好好注意啊。

标签:特化,hashValue,const,char,size,指针
From: https://www.cnblogs.com/wsdanshenmiao/p/18261584

相关文章

  • 2024-06-21 如何在React中使用ECharts
    要安装两个插件echarts和echarts-for-react,前者是一个js图标库,后者是对前者在react的封装,想要在react用echarts,就得装echarts-for-react这类的转换库。yarnaddechartsecharts-for-react例子:importReact,{Component}from"react";importReactEChartsfrom"echarts......
  • PyCharm 2023下载
    申明:本教程Pycharm破解补丁、激活码均收集于网络,请勿商用,仅供个人学习使用,如有侵权,请联系作者删除。若条件允许,希望大家购买正版!PS:本教程最新更新时间:2023年2月2日~ 第一步:下载Pycharm安装包访问Pycharm官网,下载Pycharm2022.3版本的安装包,下载链接如下:Dow......
  • 关于Echarts的简单基础用法
    首先我们需要去官网:ApacheECharts找到我们需要的图表如图下:2.在使用之前我们需要获取所需的npmnpminstallecharts3.这时我们需要新建一个 index.html 文件<!DOCTYPEhtml><html><head><metacharset="utf-8"/><!--引入刚刚下载的ECharts文件-->......
  • 若依框架页面新增时,富文本加入图片保存时出现:JSON parse error: Unexpected character
    在使用若依框架的富文本框新增时,如果插入一个图片的时候会出现一个JSONparseerror:Unexpectedcharacter('/'(code47)):maybea(non-standard)comment?(notrecognizedasonesinceFeature'ALLOW_COMMENTS'notenabledforparser);nestedexceptioniscom.fas......
  • linux下PyCharm无法识别导入包的问题(xlsxwriter)
    在linux安装pycharm,有的包无法识别自动安装,并且在pycharm的python软件包安装窗口可以搜索出对应软件包,但是点击安装无反应。在终端使用pip/pip3installxxx,提示error:externally-managed-environmentThisenvironmentisexternallymanagedToinstallPythonpackagessyst......
  • python工具系列(亲测有效):在pycharm中复制粘贴时出现ENSP如何处理
    在pycharm中复制粘贴时出现ENSP如何处理在pycharm中复制粘贴时出现ENSP如何处理在pycharm中复制粘贴时出现ENSP如何处理安装nexchatgpt插件之后,生成的代码,如果直接粘贴到pycharm.py文件中,会出现ENSP图样,如下图所示:粘贴到jupyternotebook虽然看不出来,也是不能......
  • charles 打断点修改请求参数
    此操作的作用:绕过前端限制,传自己期望的参数,检验后端的处理效果操作步骤:1、点一下你要测的功能,先抓取到一个请求  2、复制URL  3、设置断点      4、再次点第一步的功能,然后就可以去修改参数了,执行完成就看到你想要的效果了 ......
  • springboot——https请求异常Invalid character found in method name. HTTP method n
    遇到问题的情况接口没有配置https,请求时用https会此异常。其他情况1、问题现象java.lang.IllegalArgumentException:Invalidcharacterfoundinmethodname.HTTPmethodnamesmustbetokensatorg.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11Inp......
  • Character Animator 2024 mac/win版:赋予角色生命,动画更传神
    CharacterAnimator2024是一款强大的角色动画制作软件,以其创新的功能和卓越的性能,为动画师、游戏开发者以及设计师们带来了全新的创作体验。CharacterAnimator2024mac/win版获取 这款软件采用了先进的骨骼绑定技术,使得角色动画的制作变得更为轻松和精准。用户可以轻松地......
  • 当char型变量遇上char*型的指针
    #include<stdio.h>intmain(void){ char*i=(char*)0x1111; printf("size=%d%d\n",sizeof(i),sizeof((char*)0x11));//sizei=8bytes,size(char*)0x11=8bytes,cause0x11isconveredtochar*,char*isaponinterandhas64......