泛型参数怎么new_泛型编程,你不知道?(基础篇)

关注“杜明c”,每天进步一点点!

我们学习C++,就常常有人提起泛型编程,什么是泛型编程?我就给大家简单聊一聊。

摘要

-

  • 什么是泛型编程

  • 为什么使用泛型编程

  • 使用方法

什么是泛型编程

泛型编程,简而言之,就是在编程中使用不明确的数据类型,他最大的一个特点就在这个“泛”字,让一套源码适用不同类型的元素。那么这个泛型编程具体什么作用呢?比如我们要我们要写一个求两个数的最大值的函数,一般来说我们都这么实现。

int max(int a, int b){    return a>b?a:b;}

一旦数据的类型发生改变,那么代码就得改一改,这依然很好实现,利用用函数的重载就可以实现。

double max(double a,double b){    return a>b?a:b;}
为什么要使用泛型编程

可是当要求是float型数据的时候,我们就需要添加更多的代码,这无疑增加了很多繁琐的工作,

这时候函数模板就派上了用场。

template <typename T>  //定义一个类型TT max(T a, T b)    //函数定义{    return a>b?a:b;}cout << max<int>(1,5) << endl;//函数调用----out----5

使用一个函数模板就可以实现这个函数,让我们专注于逻辑实现,而不是繁琐的重复工作。

使用方法

除了函数模板之外,我们还可以使用类模板,他们的用法是一样的。

  • 函数模板

  • 类模板

template //函数模板T max(T a, T b)    {    return a>b?a:b;}class base {public:  base(T new_a)  {    a = new_a;  }  T a;  T fun() {    return a;  }};

那么怎么使用呢?其实也很简单。

base<int> a(4);cout << a.fun() << endl;cout << max<int>(1,4) << endl;----out----44

下一章应用篇,说的是使用类模板构造一个vector容器,有兴趣的同学可以看看。

留言区

End

    杜明c

专注C/C++

长按关注839903cf15cddfe6d257e190122559c4.png

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

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

相关文章

flex画拓扑

FVT 基本的图表到复杂的交互图形和拓扑&#xff0c;提供数据管理、可是编码、动画、交互 Analytics&#xff1a;operators&#xff0c;为了计算和统计data Animate&#xff1a;创建动画的工具 Data&#xff1a;存储数据的模型 Display&#xff1a;继承flash.display Flex&#…

zabbix入门之添加监控项

zabbix入门之添加监控项 添加一个不带参数的监控项&#xff08;system.cpu.switches&#xff09; 进入“配置”-->“主机”选择某主机的“监控项” 选择创建监控项 键值后边的“选择”提供了大量的键值&#xff0c;带有[ ]的需要定义参数值&#xff0c;这里选择system.cpu.s…

[html] 网站如何自适应手机屏幕

[html] 网站如何自适应手机屏幕 一种是各种流式布局&#xff0c;另外就是简单粗暴&#xff0c;写两套&#xff0c;一套pc ,一套mobile ,根据设备标识来重定向不同的页面个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。…

scratch跳一跳游戏脚本_cocos creator制作微信小游戏「跳一跳」

一、游戏的分析(之前没有接触过小游戏&#xff0c;制作的思维还停留在大型ARPG游戏大家共同协作的想法里&#xff0c;但是小游戏讲究小而全&#xff0c;大部分时间是一个人独立开发&#xff0c;所以需要迫使自己养成看到小游戏先拆分细化的思想)二、一些必要的参数台阶参数1: 设…

中boxplot函数的参数设置_如何在Python中生成图形和图表

在本章中&#xff0c;我们将学习如何在Python中生成图形和图表&#xff0c;同时将使用函数和面向对象的方法来可视化数据。Python中常用的一些可视化数据包括以下几种。Matplotlib。Seaborn。ggplot。Geoplotlib。Bokeh。Plotly。在本章中将使用Matplotlib可视化数据包。此外&a…

zabbix入门之监控MySQL

zabbix入门之监控MySQL 这里使用的是zabbix官方自带的MySQL监控模板。 首先确保在被监控主机安装zabbix-agent、zabbix-sender&#xff0c;并且将主机加入监控节点。具体操作请看zabbix添加主机&#xff1a;https://www.cnblogs.com/Smbands/p/11593593.html 修改zabbix自带的M…

[html] html中p标签内为何不能嵌套div标签?

[html] html中p标签内为何不能嵌套div标签&#xff1f; p 是行内 div 是块级个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

css清除浮动的几种方法_CSS 分享几种传统布局方法[上]

本章主要探讨 HTML5 中 CSS 早期所使用的传统布局&#xff0c;很多情况下&#xff0c;这些布局方式还是非常有用的。一&#xff0e;布局模型在早期没有平板和智能手机等移动设备大行其道的时期&#xff0c;Web 页面的设计主要是面向PC 端电脑分辨率展开的。这种分辨率比例比较单…

android刷新时的圆形动画_Android动画篇(一):圆形进度条CircleProgressBar

前言#最近看框架和源码比较多&#xff0c;很久没有写动画了&#xff0c;相信很多的朋友都对动画感兴趣&#xff0c;我也不例外&#xff0c;毕竟做前端还是要靠动画特效吃饭的&#xff0c;并且比写功能模块更有成就感。今天我们就来个稍微简单一点的CircleProgressBar热个身。首…

python没有那个文件或目录_fatal error: Python.h: 没有那个文件或目录 解决方法

今天安装scrapy 先说下环境 Ubuntu16.04 系统默认Python 2.7.12 (default, Nov 19 2016, 06:48:10) &#xff0c;安装过anaconda&#xff08;很关键&#xff0c;里面有好多系统包&#xff0c;也是为什么此工具不十分依赖系统环境的原因&#xff0c;否则单独装matplotlib也是难弄…

1-7docke的网络模式

1、Bridge模式bridge 模式是 docker 的默认⽹络模式&#xff0c;不写 –net 参数&#xff0c;就是 bridge 模式。比如使⽤ docker run - p 时工作模式从网上找了一个&#xff0c;如下 例子&#xff1a; run -it -d --name test1 --netbridge centos:v1 bashrun -it -d --name t…

[html] HTML5的video怎么取消自动播放?

[html] HTML5的video怎么取消自动播放&#xff1f; 去掉 autoplay 属性个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

分页的limit_分页场景(limit,offset)为什么会慢

链接:http://t.cn/AidABz08从一个问题说起五年前在腾讯的时候&#xff0c;发现分页场景下&#xff0c;mysql请求速度非常慢。数据量只有10w的情况下&#xff0c;select xx from 单机大概2&#xff0c;3秒。我就问我师父为什么&#xff0c;他反问“索引场景&#xff0c;mysql中获…

[html] 隐藏div内文字的方法有哪些?

[html] 隐藏div内文字的方法有哪些&#xff1f; text-indent:-9999px; 或 line-height:0; font-size:0; overflow:hidden;个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端…

Android游戏开发基础part3--Paint 画笔

游戏开发基础part3--Paint 画笔 Paint画笔是绘图的辅助类&#xff0c;一般它是作为画布的参数来实现相应的效果&#xff0c;Paint类中包含文字与位图的样式、颜色等属性信息。Paint的常用方法如下&#xff1a; 1.setAntiAlias(boolean aa) 作用&#xff1a;设置画笔是否无锯齿 …

jvm 参数_6个提高性能的JVM参数

截止到2020年五月&#xff0c;JVM中仅仅只是关于垃圾回收和内存相关的参数就已经超过600个。如果算上其他方面的参数&#xff0c;JVM相关的总参数能轻松超过1000个。参数太多了&#xff0c;弄得人很懵逼。在这边文章中&#xff0c;我们只选取了7个比较重要&#xff0c;且有用的…

zabbix入门之定义触发器

zabbix入门之定义触发器 触发器的概念 触发器的定义&#xff1a;界定某特定的item 采集到数据的非合理区间或非合理状态。通常为逻辑表达式。 逻辑表达式(阈值)&#xff1a;通常用于定义数据的不合理区间&#xff0c;其结果如下&#xff1a; O K &#xff08;符合条件&#xff…

linux重启memcache_Linux中安装Memcached服务的方法

Linux中安装Memcached服务的方法导语&#xff1a;在Linux中安装Memcached服务需要执行一些命令行&#xff0c;下面就由小编为大家介绍一下Linux中安装Memcached服务的方法&#xff0c;大家一起去看看吧&#xff01;下载并安装Memcache服务器端服务器端主要是安装memcache服务器…

[html] 说说页面中字体渲染规则是怎样的?会有哪些因素影响字体的渲染?

[html] 说说页面中字体渲染规则是怎样的&#xff1f;会有哪些因素影响字体的渲染&#xff1f; 字体渲染&#xff1a; 1.解码&#xff0c;根据web服务器返回的&#xff08;或者本地网页本身的&#xff09;content-type charset等信息确定编码&#xff0c;将网页解码成Unicode字…

mybatis字符串转成数字_Python字符串三种格式化输出

字符串格式化输出是python非常重要的基础语法&#xff0c;今天就把三种格式化输出做一个简单的总结&#xff0c;希望对大家有帮助。格式化输出&#xff1a;内容按照一定格式要求进行输出。1.使用占位符%输出python2.6版本之前&#xff0c;使用%格式化字符串沿用的是C语言的输出…