STL学习笔记-函数模板与类模板
函数模板例如编写一个比较大小的函数时如果参数不确定则需要编写一组重载函数以满足不同类型的需求但是带来的后果是如果后期需要修改函数逻辑意味着所有的重载函数都要修改。如果使用函数模板则只需要编写一次即可template typename T int compare(const T a, const T b){ if(ab) return -1; if(ba) return 1; return 0; }然后如果对函数进行调用编译器会根据参数类型进行判断然后实例化一个指定参数类型的模板函数。double a1.2, b2.0; int ccompare(a , b); //自动推断类型为doubleab必须同一类型 必须传入支持 操作符的类型 int d comparedouble(a, b);// 显式指定为double,编译器不再自动推断函数模板的限制必须传入相同类型的参数如果不同可以通过重载函数实现只支持全特化不支持偏特化。可以通过重载函数实现我们可以通过模板特化实现两个char类型参数比较template int compare(char a, char b){ if(a-b0) return 1; if(b-a0) return -1; return 0; }或者通过函数重载实现int compare(char a, char b){ //普通函数 if(a-b0) return 1; if(b-a0) return -1; return 0; }函数匹配规则如果即做了模板特化又做了函数重载那到底调用哪个呢函数的匹配规则如下寻找参数完全匹配的普通函数寻找模板参数完全匹配的函数模板寻找可以通过隐式转换匹配的普通函数如果都没找到爆编译失败类模板与函数模板类似类模板中的数据成员和函数成员都可以使用模板参数中的待定类型。区别是使用类模板创建对象之前必须先实例化一个模板类必须显式的指定模板参数类型template typename T1typename T2 class Animal{ public: Animal(T1 a, T2 b):a(a,b)() int compare(const T1a, const T1 b); private: T1 a; T2 b; }Animalint, int dog(1,100); Animalint, double cat(2,0.1);类模板的全特化与偏特化如果要想实现特殊的类可以通过模板全特化或模板偏特化实现template typename T1 //偏特化 class AnimalT1,char{ } template //全特化 class Animalchar,char{ }

相关新闻

HoRNDIS企业级USB网络共享解决方案:macOS与Android设备深度集成实战指南

HoRNDIS企业级USB网络共享解决方案:macOS与Android设备深度集成实战指南

HoRNDIS企业级USB网络共享解决方案:macOS与Android设备深度集成实战指南 【免费下载链接】HoRNDIS Android USB tethering driver for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/ho/HoRNDIS HoRNDIS是一个专业级的macOS内核扩展驱动,为…

2026/7/28 15:29:24阅读更多 →
PTA_数据结构与算法题目集(中文)_7-9 Huffman Codes (30 分)_简洁版解法

PTA_数据结构与算法题目集(中文)_7-9 Huffman Codes (30 分)_简洁版解法

题目地址题目分析: 我们在分析哈夫曼树建立规则后可知,在所有(n个)数据作为子叶节点时,需且仅需(n-1个)连接点来构成完整的哈夫曼树。故,我们设置一个大小为2*n的结构体数组并使用其…

2026/7/28 15:29:24阅读更多 →
JAVA计算机毕设之基于SpringBoot+Vue的校园共享单车信息化运维管理系统 校园共享单车故障上报与车辆调度管理系统(完整前后端代码+说明文档+LW,调试定制等)

JAVA计算机毕设之基于SpringBoot+Vue的校园共享单车信息化运维管理系统 校园共享单车故障上报与车辆调度管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/28 15:29:24阅读更多 →
VisualCppRedist AIO:Windows系统依赖修复的终极解决方案深度解析

VisualCppRedist AIO:Windows系统依赖修复的终极解决方案深度解析

VisualCppRedist AIO:Windows系统依赖修复的终极解决方案深度解析 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 在Windows系统管理和软件开发部署过…

2026/7/28 16:37:51阅读更多 →
3步彻底解决Windows窗口大小限制:开源神器Window Resizer完全掌控指南

3步彻底解决Windows窗口大小限制:开源神器Window Resizer完全掌控指南

3步彻底解决Windows窗口大小限制:开源神器Window Resizer完全掌控指南 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 还在为那些顽固的Windows应用程序窗口而烦恼吗&a…

2026/7/28 16:37:51阅读更多 →
基于SpringBoot的网络教学质量评价系统的设计与实现

基于SpringBoot的网络教学质量评价系统的设计与实现

目录 摘要 Abstract 第1章 绪论 1.1 研究背景 1.2 国内外研究现状 1.2.1国内研究现状 1.2.2国外研究现状 1.3 选题的目的 1.4 课题研究的意义 1.5 研究的内容及方法 1.5.1 研究内容 1.5.2 研究方法 第2章 开发技术介绍 2.1 MySQL数据库 2.2 B/S结…

2026/7/28 16:37:51阅读更多 →
memset 函数 , fill 函数的用法

memset 函数 , fill 函数的用法

又是柳神的博客 memset函数 按照字节填充某字符 在头文件<cstring>里面 只能初始化0 &#xff0c; -1 &#xff0c; 0x3f3f3f3f fill函数 按照单元赋值&#xff0c;将一个区间的元素都赋同一个值 在头文件<algorithm>里面 因为memset函数按照字节填充&#xf…

2026/7/28 16:37:51阅读更多 →
Linux:centos7 -bash: unzip: command not found

Linux:centos7 -bash: unzip: command not found

安装即可&#xff0c;命令如下 yum install -y unzip zip

2026/7/28 16:37:51阅读更多 →
AI如何重构历史地理研究范式:7个已被验证的学术突破案例,90%学者还不知道

AI如何重构历史地理研究范式:7个已被验证的学术突破案例,90%学者还不知道

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI历史地理学的范式革命与学科定位 AI历史地理学并非传统地理学或人工智能的简单叠加&#xff0c;而是在时空建模、知识图谱演化与历史语料深度解析交汇处催生的新兴交叉范式。它以计算考古学、数字人文…

2026/7/28 16:35:50阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

&#x1f539; 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具&#xff0c;凭借本地离线运行、可视化图形操作和任务自动化三大核心特性&#xff0c;赢得了众多用户的青睐。与普通在线对话AI工具不同&#xff0c;它属于能够直接操控本机软硬件的智能数字员工…

2026/7/28 4:06:39阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接&#xff0c;是用激光束对阀座壳体&#xff08;通常为不锈钢或铝合金&#xff09;进行密封焊接&#xff0c;使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/28 2:08:06阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX&#xff1a;三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/28 1:38:28阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿&#xff01;3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑&#xff1a;把几百页的财报、法规、技术手册扔给向量库&#xff0c;问一个具体问题&#xff0c;搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了&#xff0c;要么藏在几十条结果的最下面。语义相似≠真正相关&#xff0c;这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营&#xff0c;从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候&#xff0c;每天刷半小时抖音&#xff0c;手动把爆款视频的口播敲进备忘录&#xff0c;一条2分钟的视频得花十来分钟&#xff0c;碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时&#xff0c;发现推理速度只有可怜的 1-2 FPS&#xff0c;而别人的演示视频却能跑到 30 FPS 以上&#xff0c;那么问题很可能不在模型本身&#xff0c;而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后&#xff0c;会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一&#xff1a;为什么你需要了解 Coze 和 Dify&#xff1f;如果你对 AI 应用开发感兴趣&#xff0c;但一看到“大模型”、“智能体”、“工作流”这些词就头疼&#xff0c;觉得门槛太高&#xff0c;那这篇文章就是为你准备的。很多开发者&#xff0c;包括我自己&#…

2026/7/28 3:17:03阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会&#xff1a;配图一直是个让人头疼的问题。2026年&#xff0c;AI生图工具已经非常成熟了&#xff0c;但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1&#xff1a;速度之王2026年6月11日&#xff0c…

2026/7/28 2:35:58阅读更多 →