模板Plus
文章目录
- 1.非类型模板参数的引入
- 2.标准库和普通数组
- 3.模板的特化
1.非类型模板参数的引入
//非类型模板参数 -- 常量
template<class T, size_t N = 10>
class array
{
private:T _a[N];
};int main()
{array<int> a1;array<int, 100> a2;array<double, 1000> a3;return 0;
}
2.标准库和普通数组
int main()
{array<int, 10> a1; int a2[10] = { 0 };//a1[10]; 越界检查--operator()函数调用//a2[15] = 0; 写会检查(部分会检查)读不检查return 0;
}
3.模板的特化
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <list>
#include <vector>
#include <algorithm>
#include <array>
#include <time.h>
#include <queue>
#include <stdbool.h>
using namespace std;struct Date
{//构造函数Date(int year, int month, int day):_year(year), _month(month), _day(day){}//判断大于bool operator>(const Date& d) const{if ((_year > d._year)|| (_year == d._year && _month > d._month)|| (_year == d._year && _month == d._month && _day > d._day)){return true;}else{return false;}}//判断小于bool operator<(const Date& d) const{if ((_year < d._year)|| (_year == d._year && _month < d._month)|| (_year == d._year && _month == d._month && _day < d._day)){return true;}else{return false;}}//成员属性int _year;int _month;int _day;
};//函数模板及特殊化处理
template<class T>
bool Greater(T left, T right)
{return left > right;
}
template<>
bool Greater<Date*>(Date* left, Date* right)
{return *left > *right;
}//类模板及特殊化处理
namespace apex
{template<class T>struct less{bool operator()(const T& left, const T& right) const{return left < right;}};template<>struct less<Date*>{bool operator()(Date* d1, Date* d2) const{return *d1 < *d2;}};
}int main()
{//函数模板特殊化处理Date d1(2022, 7, 7);Date d2(2022, 7, 8);cout << Greater(d1, d2) << endl; Date* p1 = &d1;Date* p2 = &d2;cout << Greater(p1, p2) << endl; //类模板特殊化处理apex::less<Date> ls1;cout << ls1(d1, d2) << endl;apex::less<Date*> ls2;cout << ls2(p1, p2) << endl;//适配器模板的特化std::priority_queue<Date, vector<Date>, apex::less<Date>> dq1;std::priority_queue<Date*, vector<Date*>, apex::less<Date*>> dq2;dq2.push(new Date(2023, 8, 9));dq2.push(new Date(2023, 8, 10));dq2.push(new Date(2023, 8, 12));dq2.push(new Date(2023, 8, 13));return 0;
}
相关文章:
模板Plus
文章目录 1.非类型模板参数的引入2.标准库和普通数组3.模板的特化 1.非类型模板参数的引入 //非类型模板参数 -- 常量 template<class T, size_t N 10> class array { private:T _a[N]; };int main() {array<int> a1;array<int, 100> a2;array<double, …...
spring事务和数据库事务是怎么实现
Spring事务的原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供事务功能的。对于纯JDBC操作数据库,想要用到事务,可以按照以下步骤进行: 获取连接 Connection con DriverManag…...
el-date-picker设置默认当前日期
HTMl部分: <el-form-item label"拍摄时间:"><el-date-pickerv-model"searchData.filmingTimeRange"type"daterange"align"right"unlink-panelsrange-separator"至"start-placeholder"…...
vue中使用this.$refs获取不到子组件的方法,属性方法都为undefined的解决方法
问题描述 vue2中refs获取不到子组件中的方法?,而获取到的是undefined 原因及解决方案: 第一种、在循环中注册了很多个ref 因为注册了多个ref,获取是不能单单知识refs.xxx,需要使用数组和索引来获取具体一个组件refs[…...
Linux命令200例:df用于显示文件系统的磁盘空间使用情况
🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 &…...
Service not registered 异常导致手机重启分析
和你一起终身学习,这里是程序员Android 经典好文推荐,通过阅读本文,您将收获以下知识点: 一、Service not registered 异常导致手机重启二、Service not registered 解决方案 一、Service not registered 异常导致手机重启 1.重启 的部分Log如…...
深度解读|一站式ABI平台 Smartbi Insight V11 能力再升级
纵观过去,我们发现汽车和BI的发展有异曲同工之妙。 100来年,汽车的动力从蒸汽到燃油再到新能源,汽车的操控方式从手动到自动再到智能无人驾驶。而在BI领域,自1958年BI的概念提出后,底层数据准备从报表开发、Cube多维模…...
vConsole手机调试模式uniapp和原生h5
手机打开调试模式的方法 尽量放在页面头部,底部有可能不行 原生 <script src"https://cdn.bootcss.com/vConsole/3.3.0/vconsole.min.js"></script> <script>// init vConsolevar vConsole new VConsole();console.log(Hello world)…...
Flutter Dart语言(05)异步
0 说明 该系列教程主要是为有一定语言基础 C/C的程序员,快速学习一门新语言所采用的方法,属于在C/C基础上扩展新语言的模式。 1 async和await 在Dart语言中,虽然没有像其他语言(如Java、C、Python)中的传统多线程概…...
滇医通微信小程序分析笔记
注意 本文章仅供学习交流使用,如果你是铁粉你就会知道博主之前发布过一篇相关的文章,但是由于代码涉及到法律相关所以就隐藏了,两年的时间过去了,因为女朋友已经早早安排上了,所以就搁置了,本次不做代码分…...
IoTDB在springboot2中的(二) 查询
上一章我们处理的基本的构建接入,以及插入的处理,那么接下来我们进行查询的操作处理。 我们继续在IoTDBSessionConfig工具类中加入查询的方法处理 /*** description: 根据SQL查询最新一条数据* author:zgy* param sql sql查询语句,count查询…...
SpringBoot 底层机制分析【Tomcat 启动+Spring 容器初始化+Tomcat 如何关联Spring 容器】【下】
😀前言 本篇博文是关于SpringBoot 底层机制分析实现,希望能够帮助你更好的了解SpringBoot 😊 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大…...
NLP(六十五)LangChain中的重连(retry)机制
关于LangChain入门,读者可参考文章NLP(五十六)LangChain入门 。 本文将会介绍LangChain中的重连机制,并尝试给出定制化重连方案。 本文以LangChain中的对话功能(ChatOpenAI)为例。 LangChain中的重…...
C字符串与C++ string 类:用法万字详解(上)
目录 引言 一、C语言字符串 1.1 创建 C 字符串 1.2 字符串长度 1.3 字符串拼接 1.4 比较字符串 1.5 复制字符串 二、C字符串string类 2.1 解释 2.2 string构造函数 2.2.1 string() 默认构造函数 2.2.2 string(const char* s) 从 C 风格字符串构造 2.2.3 string(co…...
async/await函数需要trycatch吗?
前言 写异步函数的时候,promise 和 async 两种方案都非常常见,甚至同一个项目里,不同的开发人员都使用不同的习惯, 不过关于两者的比较不是本文关注的重点,只总结为一句话:“async 是异步编程的终极解决方案”。 当使…...
Jenkins集成appium自动化测试(Windows篇)
一,引入问题 自动化测试脚本绝大部分用于回归测试,这就需要制定执行策略,如每天、代码更新后、项目上线前定时执行,才能达到最好的效果,这时就需要进行Jenkins集成。 不像web UI自动化测试可以使用无痕浏览器做到无界…...
MongoDB:切换log日志文件
可以不重启MongoDB,切换日志文件 use admin db.runCommand({logRotate:1})参考 MongoDB 日志切割三种方式...
代码随想录第三十五天
代码随想录第三十五天 Leetcode 860. 柠檬水找零Leetcode 406. 根据身高重建队列Leetcode 452. 用最少数量的箭引爆气球 Leetcode 860. 柠檬水找零 题目链接: 柠檬水找零 自己的思路:我的垃圾思路!!!!!!复…...
块、行内块水平垂直居中
1.定位实现水平垂直居中 <div class"outer"><div class"test inner1">定位实现水平垂直居中</div></div><style>.outer {width: 300px;height: 300px;border: 1px solid gray;margin: 100px auto 0;position: relative;}.te…...
Mybatis引出的一系列问题-动态 SQL
动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底…...
Hunyuan-MT-7B多场景实践:像素语言传送门在独立游戏开发、字幕生成、文档本地化中的三重应用
Hunyuan-MT-7B多场景实践:像素语言传送门在独立游戏开发、字幕生成、文档本地化中的三重应用 1. 像素语言传送门:当翻译遇见16-bit冒险 在独立游戏开发者的工作台上,一款名为"像素语言传送门"的工具正在改变传统翻译体验。这款基…...
Pixel Couplet Gen效果展示:基于用户画像(年龄/地域)的像素春联风格个性化推荐
Pixel Couplet Gen效果展示:基于用户画像(年龄/地域)的像素春联风格个性化推荐 1. 项目概览 Pixel Couplet Gen是一款融合传统春节文化与现代像素艺术风格的AI春联生成器。通过ModelScope大模型的强大生成能力,结合精心设计的8-…...
OFA-VQA镜像可解释性增强:Grad-CAM热力图可视化答案依据区域
OFA-VQA镜像可解释性增强:Grad-CAM热力图可视化答案依据区域 1. 引言:为什么需要可视化VQA模型的决策依据? 当我们使用视觉问答(VQA)模型时,经常会遇到一个关键问题:模型给出的答案真的可靠吗…...
OpenClaw多模型对比:Phi-3-mini-128k-instruct与Qwen在自动化任务中的表现
OpenClaw多模型对比:Phi-3-mini-128k-instruct与Qwen在自动化任务中的表现 1. 测试背景与实验设计 去年夏天,当我第一次尝试用OpenClaw自动化处理日常办公任务时,最困扰我的问题就是模型选择。不同的模型在理解能力、响应速度和资源消耗上差…...
OpenClaw家庭相册:Qwen3.5-9B-VL自动识别人物与场景分类
OpenClaw家庭相册:Qwen3.5-9B-VL自动识别人物与场景分类 1. 为什么需要智能相册管理 作为一个摄影爱好者和两个孩子的父亲,我的手机和硬盘里堆积了超过5万张家庭照片。每次想找特定场景(比如"去年夏天在海边的全家福")…...
DLSS Swapper:3步解锁游戏性能倍增的AI优化工具
DLSS Swapper:3步解锁游戏性能倍增的AI优化工具 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为PC游戏玩家设计的深度学习超级采样(DLSS)版本管理工具,通过智能环境诊断、…...
POIKit:地理数据全流程处理的高效解决方案
POIKit:地理数据全流程处理的高效解决方案 【免费下载链接】AMapPoi POI搜索工具、地理编码工具 项目地址: https://gitcode.com/gh_mirrors/am/AMapPoi 价值定位:重新定义地理数据采集效率 行业痛点与技术突破 在地理信息领域,传统…...
Transformer架构详细解读(教程向)
说明:本文内容多来自尚硅谷自然语言处理课程讲义,图文并茂,有图有公式,内容质量很高,在此表示感谢! 一、问题背景 在大模型奠基之作Transformer出来之前,传统的序列建模都是以RNN,…...
Ostrakon-VL-8B对比评测:主流开源多模态模型在餐饮场景的较量
Ostrakon-VL-8B对比评测:主流开源多模态模型在餐饮场景的较量 最近在餐饮和零售行业,用AI来“看懂”图片的需求越来越多了。比如,自动识别菜品、分析菜单、甚至根据顾客拍的模糊照片推荐相似菜品。这背后,多模态模型是关键。 市…...
FC-CLIP实战:为什么说“卷积不死”?在开放词汇分割中冻结CLIP主干的深度解析与避坑指南
FC-CLIP技术解析:卷积架构在开放词汇分割中的不可替代性 当整个计算机视觉领域似乎都被Transformer架构席卷时,FC-CLIP论文却掷地有声地宣告"卷积不死"。这个看似反潮流的结论背后,隐藏着哪些被忽视的视觉归纳偏置?冻结…...
