【C++】什么是模板?

embedded/2024/11/15 8:26:09/

有不懂的地方可以翻阅我之前文章!

                             个人主页:CSDN_小八哥向前冲

                              所属专栏:CSDN_C++入门


目录

模板函数

泛型编程

函数模板

类模板


模板函数

泛型编程

在之前的学习里,我们知道函数可以重载当我们在实现多参数函数交换时,我们可以这样写:

但是这样写,有很多弊端。如:

  1. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增 加对应的函数。
  2. 代码的可维护性比较低,一个出错可能所有的重载均出错

那能不能告诉编译器一个模子,让编译器根据你提供的类型来生成相对应的代码呢?

如:

像这样,如果C++中也有这样的一个模具,那我们的代码可以省很多事!

这里一个新的概念:

泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。

现在我们具体重点介绍一下函数模板和类模板

函数模板

用不同类型的参数使用函数模板时,称为函数模板的实例化。

模板参数实例化分为:隐式实例化和显式实例化。

隐式实例化:让编译器根据实参推演模板参数的实际类型。

如:

显示实例化:在函数名后的<>中指定模板参数的实际类型

模板参数的匹配原则

如果非模板函数非常契合,那么就会调用非模板函数而不会调用模板去实例化。

类模板

类模板的定义格式

例如:一个栈类

注意:类模板实例化需要在类模板名字后跟<>,然后将实例化的类型放在<>中即可,类模板名字不是真正的类,而实例化的结果才是真正的类。

我们下期见!


http://www.ppmy.cn/embedded/96605.html

相关文章

MySQL 简介

一、MySQL 概述 1.1 什么是 MySQL&#xff1f; MySQL 是全球最受欢迎的开源关系型数据库管理系统&#xff08;RDBMS&#xff09;之一&#xff0c;由瑞典的 MySQL AB 公司开发&#xff0c;后被 Sun Microsystems 收购&#xff0c;最终于 2010 年被 Oracle 公司收购。MySQL 使用…

微信小程序--24(列表渲染)

一、wx&#xff1a;for 1.作用 根据指定数组&#xff0c;循环渲染重复的组件结构 2.语法 <view wx:for"{{data中的数据}}"> 索引是&#xff1a;{{index}}, item项是&#xff1a;{{item}}</view> index:表索引item&#xff1a;表当前循环项 …

C++ | Leetcode C++题解之第338题比特位计数

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> countBits(int n) {vector<int> bits(n 1);for (int i 1; i < n; i) {bits[i] bits[i & (i - 1)] 1;}return bits;} };

政务大数据解决方案(九)

政务大数据解决方案旨在通过构建高效的数据处理与分析系统&#xff0c;全面整合政府各部门数据资源&#xff0c;运用尖端技术进行深入挖掘与智能分析&#xff0c;为政府决策提供科学、精准的数据支撑&#xff0c;优化政策制定与执行流程&#xff0c;同时通过加强数据安全与隐私…

【项目实战】C++视频共享点播系统

目录 一、项目介绍 1.1 对视频共享点播系统的认识 1.2服务端程序负责功能 1.3 服务端功能模块划分 1.4 项目界面演示 1.5预备知识 二.环境搭建 2.1 安装 Jsoncpp 库 2.1.1 使用jsoncpp 2.2 引入httplib库 2.2.1 安装Git&#xff08;如果你的系统尚未安装Git&#xf…

ISO 26262:汽车功能安全性的基石

ISO 26262&#xff0c;全称《道路车辆功能安全》&#xff08;Road vehicles - Functional safety&#xff09;&#xff0c;是一项旨在提高汽车电子系统安全性的国际标准。 该标准涵盖了汽车生命周期的各个环节&#xff0c;包括管理、开发、生产、经营、服务和报废等阶段&#…

《AI视频类工具之七——​ 有言》

一.简介 官网:有言一站式AIGC视频创作平台 有言(Youyan)是一个一站式的AIGC(人工智能生成内容)视频创作平台,它由魔珐科技提供,主要特点是可以让用户无需真人出镜就能制作高质量的3D视频内容。 二.功能介绍 3D虚拟角色: 提供大量的高质量、超写实的3D虚拟人物角色供…

如何在Python中使用情感分析API

情感分析 API 服务是一种借助人工智能技术的工具&#xff0c;能够自动识别并衡量文本数据&#xff08;像社交媒体的帖子、产品的评论、新闻文章等等&#xff09;所蕴含的情感色彩。在本文里&#xff0c;我们会一同探讨怎样在 Python 中集成情感分析 API &#xff0c;并且展示它…