当前位置: 首页 > news >正文

数据结构预备知识(模板)

模板

功能上类比C++的重载函数,可以使用一种通用的形式,去代替诸多数据类型,使得使用同一种函数的时候,可以实现对于不同数据类型的相同操作。增强类和函数的可重用性。

使用模板函数为函数或类声明一个一般的模式,使得函数的参数、返回值或类中的某些成员取得任意类型。

函数模板

函数模板可以用来创建一个通用功能的函数,支持不同形参,以简化重载函数函数体的设计。

声明方法

template <typename 标识符>

函数声明

实例(求绝对值函数的模板)

#include<iostream>
using namespace std;
template<typename T>
T abs(T x)
{return x<0?-x:x;               #问号表达式,假如问号前面的式子成立,则返回冒号前面的数值,反之返回冒号后面的数值
}
int main()
{int n=4;double d=12.2;cout<<abs(n)<<endl<<abs(d);return 0;
}

补充知识点——问号表达式

    return x<0?-x:x; 

问号表达式,假如问号前面的式子成立,则返回冒号前面的数值(或表达式),反之返回冒号后面的数值(或表达式)

 类模板

类模板使用户可以为类声明一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值,能取任意类型。

声明方法

template <模板参数表>

class 类名

{类成员声明}

注意,在类模板外定义成员函数时,需要在函数定义前加上模板名。

template<模板参数表>

类型名 类名<T>::函数名 (参数表)

使用模板类产生对象时,按照以下形式声明:

模板类名<模板参数表>对象名1,对象名2...;

实例

#include<iostream>
using namespace std;
template<typename T>
class compare
{
public:compare(T x,T y){item1=x;item2=y;}T max(){return item1>item2?item1:item2;}
private:T item1,item2;
};
int main()
{
compare<int>intp(3,5);
compare<double>dblp(9.5,5.2);
cout<<intp.max()<<endl<<dblp.max();
return 0;
}

http://www.lryc.cn/news/25832.html

相关文章:

  • SWM181按键控制双通道PWM固定占空比输出
  • pygame函数命令
  • 异步循环
  • Vue表单提交与数据存储
  • API网关(接入层之上业务层之上)以及业务网关(后端服务网关)设计思路(二)
  • 有些笑话,外行人根本看不懂,只有程序员看了会狂笑不止
  • 企业电子招投标采购系统——功能模块功能描述
  • Presto 在美图的实践
  • Molecule:使用Jetpack Compose构建StateFlow流
  • 计算机组成原理(2.2)--系统总线
  • 如何使用dlinject将一个代码库实时注入到Linux进程中
  • Docker安装Cassandra数据库,在SpringBoot中连接Cassandra
  • Linux常用命令总结(建议收藏)
  • 【Java】P1 基础知识与碎碎念
  • Jackson CVE-2017-7525 反序列化漏洞
  • 【2023】DevOps、SRE、运维开发面试宝典之Kubernetes相关面试题
  • 【算法】PatchMatch立体匹配算法_原理解析
  • 【同步工具类:CyclicBarrier】
  • Android 12.0 Settings 去掉打开开发者模式和USB调试模式的广播
  • OSI七层网络模型和TCP/IP四层网络模型的异同
  • 接口测试必备技能 - 加密和签名
  • JVM虚拟机概述(1)
  • 学习.NET MAUI Blazor(七)、实现一个真正的ChatGPT聊天应用
  • Django框架学习
  • JavaSE21-集合1-set
  • Web版和客户端哪种SQL工具更好?ChatGPT有话要说
  • 从客户端的角度来看移动端IM即时通讯的消息可靠性和送达机制
  • 2023年java春招面试题及答案
  • Django学习——基础篇(上)
  • 研报精选230302