网站设计的主题顺德网络营销网站

bicheng/2026/1/19 1:23:58/文章来源:
网站设计的主题,顺德网络营销网站,指数计算器,大连网站制作学校Linux C 022-函数模板 本节关键字#xff1a;Linux、C、函数模板、泛型编程 相关库函数#xff1a; 函数模板的用法 C另一种编程思想称为泛型编程#xff0c;主要利用的技术就是模板#xff0c;C提供两种模板机制#xff1a;函数模板和类模板函数模板的作用#xff1a…Linux C 022-函数模板 本节关键字Linux、C、函数模板、泛型编程 相关库函数 函数模板的用法 C另一种编程思想称为泛型编程主要利用的技术就是模板C提供两种模板机制函数模板和类模板函数模板的作用建立一个通用函数其函数返回值类型和形参类型可以不具体制定用一个虚拟的类型来代表 templatetypename T函数声明或定义 template -- 声明创建模板 typename -- 声明其后面的符号是一种数据类型可以用class代替 T -- 通用的数据类型名称可以替换通常为大写字母// 声明一个模板告诉编译器后面代码中紧跟着的T不要报错T是一个通用数据类型 templatetypename T void mySwap(T a, T b) {T temp a;a b;b temp; }void test01() {int a 10;int b 20;//1、自动类型推导mySwap(a, b);//2、显示指定类型mySwapint(a, b); }函数模板总结 1函数模板利用关键字template 2使用函数模板有两种方式自动类型推导、显示指定类型 3模板的目的是为了提高复用性将类型参数化函数模板注意事项 1自动类型推导必须推导出一致的数据类型T才可以使用 2模板必须要确定出T的数据类型才可以使用函数模板案例 案例描述 1利用函数模板封装一个排序的函数可以对不同数据类型数据进行排序 2排序规则从大到小排序算法为选择排序 3分别利用char数组和int数组进行测试 // 泛化版本 templatetypename T, typename U void mySwap(T a, U b) {cout a endl;cout b endl; } //全特化版本内为空 template void mySwapint, double(int a, double b) {cout a endl;cout b endl; }//class也可换成typename templateclass T void mySort(T arr[], int len) {for(int i0;ilen;i){int max i;for(int ji1;jlen;j){if(arr[max] arr[j]){max j;}}if(max ! i){mySwapint(arr[max], arr[i]);}} }templateclass T void printArray(T arr[], int len) {for(int i0;ilen;i){cout arr[i] endl;} }void test01() {char charArr[] abcdefint num sizeof(charArr) / sizeof(charArr[0]);mySortchar(charArr, num);printArraychar(charArr, num); }void test02() {int intArr[] {1, 2, 4, 3, 6};int num sizeof(intArr) / sizeof(intArr[0]);mySortint(intArr, num);printArrayint(intArr, num); }普通函数与函数模板的区别 1普通函数调用时可以发生自动类型转换隐式类型转换 2函数模板调用时如果利用自动类型推到不会发生隐式类型转换 3如果利用显示类型的方式可以发生隐式类型转换 // 普通函数 int mySAdd01(int a, int b) {return ab; }// 函数模板 templateclass T T myAdd02(T a, T b) {return ab; }// 使用函数模板是如果用自动类型推导不会发生自动类型转换即隐式类型转换 void test01() {int a 10;int b 20;char c c;cout myAdd01(a, b) endl; // 30cout myAdd01(a, c) endl; // 109cout myAdd02(a, b) endl; // 30cout myAdd02(a, c) endl; // 报错cout myAdd02int(a, c) endl; // 109 } // 建议使用显示指定类型的方式调用函数模板因为可以自己确定通用类型T普通函数与函数模板的调用规则 1如果函数模板和普通函数都可以实现优先调用普通函数 2可以通过空模板参数列表来强制调用函数模板 3函数模板也可以发生重载 4如果函数模板可以产生更好的匹配有限调用函数模板 void myPrint(int a, int b) {cout 调用普通函数 endl; }templatetypename T void myPrint(T a, T b) {cout 调用函数模板 endl; }templatetypename T void myPrint(T a, T b, T c) {cout 调用重载的函数模板 endl; }void test01() {int a 10;int b 20;myPrint(a, b); // 调用普通函数myPrint(a, b); // 调用函数模板myPrint(a, b, 100); // 调用重载的函数模板 }void test02() {char a c;char b d;myPrint(a, b); // 调用函数模板 }总结既然提供了函数模板就不要再提供普通函数了否则容易出现二义性 模板的局限性 模板的通用性并不是万能的例如 template class T void f(T a, T b) {a b; }在上述代码中提供的赋值操作如果传入的a和b是一个数组就无法实现了再例如 template class T void (T a, T b) {if(a b){ ... }; }在上述代码中如果T的数据类型传入的是像Person这样的自定义数据类型也无法正常运行因此C为了解决这种问题提供模板的重载可以为这些特定的类型提供具体化的模板 示例对比两个数据是否相等的函数 class Person { public:person(string name, int age){m_Name name;m_Age age;}string m_Name;int m_Age; };template class T) bool myCompare(T a, T b) {if(a b)return true;elsereturn false; }void test01() {int a 10;int b 20;bool ret myCompare(a, b);if(ret)cout a b endl;elsecout a ! b endl; } void test02() {Person p1(Tom, 10);Person p2(Tom, 10);bool ret myCompare(p1, p2);if(ret)cout p1 p2 endl;elsecout p1 ! p2 endl; }// 利用具体化Person的版本实现代码具体化 优先使用 template bool myCompare(Person p1, Person p2) {if(p1.m_Name p2.m_Name p1.m_Age p2.m_Age)return true;elsereturn false; }总结 1、利用具体化的模板可以解决自定义类型的通用化 2、学习模板并不是为了写模板而是在STL能够运用系统提供的模板

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/89019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学校网站栏目建设哪里公司建设网站好

1.变量和字面量(常量) 字面量就是一个一个的值,比如:1,2,3,4,5,6,‘HELLO’ 字面量所表示的意思就是它的字面的值,在程序中可以直接使用字面量 变量(varia…

安徽省建设工程信息网站深圳网深圳网站开发公司

W...Y的主页😊 代码仓库分享💕 ​ 🍔前言: 今天我们正式进入C篇章,作为学过C语言的同志,继续学习C肯定就不会进行那些与C语言相同的学习,因为C语言的内容在C中也可以正常使用,所…

义乌企业网站设计网上销售怎样做网站

放映笔 幻灯片放映时,工具在幻灯片的左下方,本工具在幻灯片的右侧,可以移动,可以方便在右侧讲课时候使用 绘图板 可在绘图板上写签名、绘制图画、写字等等,点画笔切换橡皮擦,点插入绘图,将背景…

做外贸用什么网站比较好西安建筑科技大学就业信息网

一.基本分类 1.单变量的传统时间序列分析 2.单变量的随机时间序列分析 3.多变量的时间序列分析 建立在回归基础上的两变量序列分析 建立在AR基础上的多变量序列分析 4.截面时序数据结合的分析 转载于:https://www.cnblogs.com/xyp666/p/9220667.html

建设网站的主要任务wordpress优化主题

文章目录 1. 线程互斥1.1 问题引入1.2 线程互斥的相关概念1.3 互斥量mutex1.4 互斥量实现原理1.5 死锁 2. 线程安全和可重入函数3. 线程同步3.1 同步概念3.2 条件变量 4. 生产消费模型4.1 基于阻塞队列的cp模型4.2 基于环形队列的cp模型POSIX信号量 5. 线程池5.1 互斥量RAII版本…

自己建设网站需要多少钱做商品条形码的网站

抖音直播招聘报白是指企业人力资源公司在抖音进行直播招聘时,需要向抖音平台提供审核申请。通过报白,企业或人力资源公司可以更好的获取招聘渠道和更多曝光的机会,同时可以提升品牌形象和知名度。报白的对象针对需要企业自招的企业和人力资源…

用二级域名做网站群浏览器网站设置在哪里

声明式管理方(yaml)文件: 1、适合对资源的修改操作 2、声明式管理依赖于yaml文件,所有的内容都在yaml文件当中。 3、编辑好的yaml文件需要依靠陈述是还是要依靠陈述式的命令发布到k8s集群当中 create只能创建,不能更新。从指定yaml文件中读取配置&#…

移动端网站设计尺寸免费自助开通网站

学习计划:初学者到高手 第1-2周:基础入门 目标:了解Shell脚本的基本概念,掌握基础命令。内容: Shell脚本是什么,为什么使用Shell脚本。基本的Shell命令(如ls, cd, mkdir, rm等)。简…

网站建设 培训 南充google搜索关键词热度

线程管理 线程管理相关概念什么是时间片轮转调度器锁线程运行机制线程的五种状态 动态和静态创建线程区别动态和静态创建线程优缺点RT-Thread动态线程管理函数动态创建线程动态删除线程 RT-Thread静态线程管理函数静态创建线程 线程其他操作线程启动线程延时获得当前执行的线程…

门户手机网站模板做网站虚拟主机和云服务器吗

这种题对于我来说只能看大佬的wp(但是这一题是wp都看不懂,只能表达一下我的理解了) (最后有简单方法,前面一种没看懂没关系) 下面这一部分是首页的有用部分 访问/source_code,得到源码: # -*-…

徐州企业网站设计wordpress修改上传附件大小

(图片来源于网络)几天前,本公众号发布的一篇译文列举了9种DevOps团队结构适用类型与7种反型(点击查看原文)。文章转发到朋友圈之后,很多DevOps同行留言(吐槽)了自己团队的现状&#…

c2c电子商务网站建设栏目结构图网站建设专家

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、数据库层面优化常用优化postgresql查询分库分表 二、内存层面优化三、代码层面优化 前言 Django是一个高级的Web框架,它…

绿色农产品网站企业服务账号

本文会介绍 1个 POD 从启动到被关闭删除, 有什么事情发生, 和有什么组件被参与进来 容器环境初始化阶段 apiserver 接受到创建容器的指令时, 在构建容器之前会有一些环境的设置阶段, 例如node 选择, image 镜像下载等…

湖南网站定制建立一个公司自己的网站

文章目录 前言声明一、Panalog大数据日志审计系统简介二、漏洞描述三、影响版本四、漏洞复现五、整改意见 前言 Panalog大数据日志审计系统定位于将大数据产品应用于高校、 公安、 政企、 医疗、 金融、 能源等行业之中,针对网络流量的信息进行日志留存&#xff0c…

订阅号怎么做免费的视频网站吗公司网站建设知乎

听课问题 除了读未提交,有一个事务对一条数据进行了修改,但是另外又有一个没有加事务的查询sql,那么读取到的数据是原始数据还是没提交的数据。 答案:没加事务的查询读取的是老数据,等事务提交以后就会读取新修改的数据 除了读…

网站的建设和品牌价值的关系wordpress二手房

刚刚在被大雨中断了两次的温网女单半决赛中,小威廉姆斯以2比0战胜了中国的郑洁。这是大块头对小女孩儿的比赛,是蛮牛与人的较力,是大猩猩与儿童的掰腕。在弱小的郑洁面前,小威确实太强悍了,她的大力正反手回球和扣球&a…

购物网站建设平台整站优化网站

文章目录 前言资源推荐环境如何开始Blazor个人推荐设置注释快捷键热重载设置 前言 Blazor简单来说就是微软提供的.NET 前端框架。使用 WebAssembly的“云浏览器”,集成了Vue,React,Angular等知名前端框架的特点。 资源推荐 微软官方文档 Blazor入门基础视频合集 …

国外电商网站建设西安知名的网站建设公司

偏系统化的ER图例子还是不够,需要寻找 汇报时很多人的er图都有问题,重点是作为e的实体(方框表示)含义并没有搞懂

建设网站的定位网站建成之后应该怎么做

Wireshark 、HTTPWatch、Fiddler的介绍 Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请求的功能也不够,且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存。Wiresha…

义乌本地网站开发网站建设搜索优化app推广新闻营销

查看一下容器的名字 这个laughing_elion是下载es时候默认的名字 修改容器名字 docker rename 容器原来名 要改为的名字 最后可以看到容器名已经修改成功