我的编程空间,编程开发者的网络收藏夹
学习永远不晚

EasyC++函数模板介绍

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

EasyC++函数模板介绍

文章转自: 公众号:Coder梁(ID:Coder_LT)

函数模板:

所谓函数的模板,本质上也就是使用泛型来定义函数。

所谓的泛型其实也就是不定的类型,比如说我们使用vector的时候,可以定义各种类型的vector,可以定义存储int型的vector也可以定义存储float类型的,也可以定义存储其他类型。我们在声明的时候将存储的类型当做参数传给了模板。

泛型可以用具体的类型,比如(int或double)替换,通过将类型作为参数传给模板,编译器会根据传递的参数类型生成该类型的函数。这种方式也被称为通用编程或者参数化类型。

举一个很简单的例子,比如说我们要实现一个函数交换两个变量的值。对于int类型我们要实现一遍,对于double类型我们又要实现一遍,如果还需要其他类型,那么又需要额外实现很多同样逻辑的函数。当然可以拷贝代码,但显然这样会很浪费时间,而且会使得代码变得臃肿。

这个时候我们就可以使用函数模板自动完成这一功能,函数模板允许以任意类型来定义函数,所以我们就可以这样实现:


template <typename T>
void swap(T &a, T &b) {
    T temp = a;
    a = b;
    b = temp;
}


当我们要创建一个模板的时候,需要首先声明模板的类型,也就是template语句做的事情。关键字typename也是必须的,也可以使用class代替。typename关键字是在C++98标准添加的,所以在更早的版本中往往使用class。在这个场景下,这两种方式是等价的。C++ Primer当中更建议使用typename而非class。

typename之后跟的是类型的名称,我们可以使用任意的名字,一般来说习惯性地会使用字母T。我们在使用的时候和普通函数并没有什么不同,当做普通函数使用即可。


template <typename T>
void swap(T &a, T &b) {
    T temp = a;
    a = b;
    b = temp;
}

int i = 10, j = 20;
swap(i, j);
double a = 3.0, b = 4.0;
swap(a, b);


虽然我们只实现了一次函数,但是在编译的时候,编译器会将这个函数根据我们使用的情况生成多个版本。比如在上面的代码当中,我们使用了int和double两种类型的函数。编译器会替我们生成两份代码,也就是说最终代码上和我们手动实现函数重载是一样的,可以理解成一种方便我们程序编写的特性。

到此这篇关于C++函数模板介绍的文章就介绍到这了,更多相关C++函数模板内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

EasyC++函数模板介绍

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++模板函数重载的相关介绍和用法

本篇内容介绍了“C++模板函数重载的相关介绍和用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1:实例化后的模版函数如果和某个非模版函数的
2023-06-17

Android Studio注释模板介绍

大家啊从Eclipse转到Android Studio很不习惯吧,感觉还是用Eclipse的方法注释模板比较方便,敲/**加回车,模板就加载出来了,而Android Studio却不能自定义,现在用live templates替代,具体方法
2022-06-06

dedecms网页模板编写介绍

一 关于标签 dedecms标签:就像html标签,不过是织梦自定义的,由标签名,属性,和InnerText构成。 先看一段代码templets/index.htm 复制代码代码如下: 网站名:{dede:global name=cfg_w
2022-06-12

Python函数介绍:map函数的介绍及示例

Python函数介绍:map函数的介绍及示例在Python编程中,函数是一种非常重要的工具,可以用来封装一段可复用的代码。其中,map函数是一个强大且常用的函数,它可以对一个可迭代对象中的每一个元素应用一个指定的函数,然后返回一个新的可迭代
Python函数介绍:map函数的介绍及示例
2023-11-03

Python函数介绍:reversed函数的介绍及示例

Python函数介绍:reversed函数的介绍及示例在Python中,reversed()函数可以将一个序列类型的对象进行反转排列,返回一个包含了反转后元素的迭代器。在本文中,我们将介绍reversed()函数的具体用法,并提供一些代码示
Python函数介绍:reversed函数的介绍及示例
2023-11-04

Python函数介绍:enumerate函数的介绍及示例

Python函数介绍:enumerate函数的介绍及示例Python是一种高级编程语言,它提供了许多强大的函数,其中一个非常实用的函数是enumerate。这个函数可以帮助我们迭代序列,并返回元素的索引及其值。这篇文章将介绍enumerat
Python函数介绍:enumerate函数的介绍及示例
2023-11-03

Python函数介绍:ord函数的介绍及示例

Python函数介绍:ord函数的介绍及示例在Python编程中,ord()函数是一个很有用的函数,它用于返回给定字符的Unicode数值,即该字符在Unicode表中的位置。本篇文章将介绍ord()函数的用法、语法以及一些示例。一、ord
Python函数介绍:ord函数的介绍及示例
2023-11-04

Python函数介绍:input函数的介绍及示例

Python函数介绍:input函数的介绍及示例随着Python语言的快速发展,越来越多的人开始学习和使用Python进行编程。在Python中,函数是一种非常重要的概念,它可以帮助我们将一段代码逻辑封装起来,使得代码更加清晰和易于维护。其
Python函数介绍:input函数的介绍及示例
2023-11-04

Python函数介绍:delattr函数的介绍及示例

Python函数介绍:delattr函数的介绍及示例Python作为一门高级的编程语言,拥有丰富的内置函数库,提供了许多方便快捷的函数来进行各种操作。其中之一就是delattr函数。本文将详细介绍delattr函数的作用以及用法,并附上具体
Python函数介绍:delattr函数的介绍及示例
2023-11-03

Python函数介绍:zip函数的介绍及示例

Python函数介绍:zip函数的介绍及示例Python是一种高级语言,它提供了许多有用的函数来帮助开发人员快速地编写程序。其中一个函数就是zip函数。Zip函数是Python中的内置函数之一,它可以接受一组可迭代对象(包括列表、元组、集合
Python函数介绍:zip函数的介绍及示例
2023-11-03

Python函数介绍:range函数的介绍及示例

Python函数介绍:range函数的介绍及示例Python是一种广泛应用于各种领域的高级编程语言,它具有简单易学的特点,并且有着丰富的内置函数库。其中,range函数是Python中常用的一个内置函数之一。本文将详细介绍range函数的功
Python函数介绍:range函数的介绍及示例
2023-11-04

Python函数介绍:int函数的介绍及示例

Python函数介绍:int函数的介绍及示例Python是一种强大的编程语言,其广泛用于数据分析、人工智能、web开发等领域。Python拥有众多内置函数,此篇文章将对Python中的一个常用函数——int进行介绍,并提供具体示例。一、in
Python函数介绍:int函数的介绍及示例
2023-11-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录