C++将模板类用作参数

#include <iostream>         // 包含头文件。
using namespace std;        // 指定缺省的命名空间。template <class T, int len>
class LinkList             // 链表类模板。
{
public:T*   m_head;          // 链表头结点。int  m_len = len;   // 表长。void insert()     { cout << "向链表中插入了一条记录。\n"; }void ddelete()  { cout << "向链表中删除了一条记录。\n"; }void update()   { cout << "向链表中更新了一条记录。\n"; }
};template <class T, int len>
class Array                // 数组类模板。
{
public:T*   m_data;          // 数组指针。int  m_len = len;   // 表长。void insert()     { cout << "向数组中插入了一条记录。\n"; }void ddelete()  { cout << "向数组中删除了一条记录。\n"; }void update()   { cout << "向数组中更新了一条记录。\n"; }
};// 线性表模板类:tabletype-线性表类型,datatype-线性表的数据类型。
template<template<class, int >class tabletype, class datatype, int len>
class LinearList
{
public:tabletype<datatype, len> m_table;     // 创建线性表对象。void insert()    { m_table.insert(); }         // 线性表插入操作。void ddelete() { m_table.ddelete(); }      // 线性表删除操作。void update()  { m_table.update(); }      // 线性表更新操作。void oper()     // 按业务要求操作线性表。{cout << "len=" << m_table.m_len << endl;m_table.insert();m_table.update();}
};int main()
{// 创建线性表对象,容器类型为链表,链表的数据类型为int,表长为20。LinearList<LinkList, int, 20>  a;   a.insert();   a.ddelete();   a.update();// 创建线性表对象,容器类型为数组,数组的数据类型为string,表长为20。LinearList<Array, string, 20>  b;b.insert();   b.ddelete();   b.update();
}

推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt

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

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

相关文章

mysql的前缀索引

什么是前缀索引 所谓的前缀索引&#xff0c;说白了就是对文本的前几个字符建立索引(具体是几个字符在建立索引时去指定)&#xff0c;比如以产品名称的前10位来建索引&#xff0c;这样建立起来的索引更小&#xff0c;查询效率更快有点类似oracle中对字段使用left函数来建立函数索…

Java与机器学习模型的集成与部署

Java与机器学习模型的集成与部署 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨如何使用Java集成和部署机器学习模型。 随着人工智能和机器学习…

【SQL】使用索引的好处

使用索引可以显著加快查询速度&#xff0c;主要原因有以下几个方面&#xff1a; 1. 减少数据扫描量 索引类似于一本书的目录&#xff0c;可以让数据库快速找到特定的数据行&#xff0c;而不是从头到尾扫描整个表。例如&#xff0c;没有索引的情况下&#xff0c;查询 SELECT *…

简洁版人工智能训练流程

人工智能&#xff08;AI&#xff09;训练流程是指使用数据来训练机器学习模型&#xff0c;使其能够执行特定任务的过程。以下是人工智能训练的一般流程&#xff1a; #mermaid-svg-qZ5c5PU9yms7cVOB {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:…

Java中如何优雅地处理NamingException异常?

Java中如何优雅地处理NamingException异常&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java开发中&#xff0c;NamingException异常是JNDI&…

鸿蒙arkts api9 图片验证码 canvas

/*** 图片验证码***/ Component export default struct RandomTxtCanvas {Link imgRandomTxt:string//图片验证private settings: RenderingContextSettings new RenderingContextSettings(true)private context: CanvasRenderingContext2D new CanvasRenderingContext2D(th…

DataWhaleAI Tsak1 运行Baseline

题目背景 在当今数字化时代&#xff0c;企业积累了丰富的对话数据&#xff0c;这些数据不仅是客户与企业之间交流的记录&#xff0c;更是隐藏着宝贵信息的宝库。在这个背景下&#xff0c;群聊对话分角色要素提取成为了企业营销和服务的一项重要策略。 群聊对话分角色要素提取…

nlp--最大匹配分词(计算召回率)

最大匹配算法是一种常见的中文分词算法&#xff0c;其核心思想是从左向右取词&#xff0c;以词典中最长的词为优先匹配。这里我将为你展示一个简单的最大匹配分词算法的实现&#xff0c;并结合输入任意句子、显示分词结果以及计算分词召回率。 代码 : # happy coding…

Tektronix泰克 AWG70001A 任意波形发生器

Tektronix泰克 AWG70001A 任意波形发生器 AWG70000A 系列任意波形发生器 (AWG) 在采样率、信号保真度和波形内存方面代表着尖端水平&#xff0c;特别适合复杂器件、系统和实验的设计、测试和操作。由于高达 50 GS/s 采样率和 10 位垂直分辨率&#xff0c;它提供了优秀的信号激…

【Python】入门Python,你必须了解这些事

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️Python】 文章目录 前言一、认识Python什么是Python&#xff1f;!Python的起源Python的特点简洁易读跨平台&#xff0c;可移植拥有强大的库和框架面向对象 Python的优缺点优点缺点 Python的应用环境扩…

linux ls文件排序

linux可以使用ls命令结合一些选项来按照文件大小对文件和目录进行排序。以下是一些常用的方法&#xff1a; 1、这里&#xff0c;-l 选项表示长格式输出&#xff08;包括文件权限、所有者、大小等&#xff09;&#xff0c;-S 选项表示按照文件大小排序&#xff0c;-h 选项表示以…

PHP留守儿童关爱之家网站-计算机毕业设计源码11079

目录 1 绪论 1.1 研究背景 1.2研究意义 1.3 论文结构与章节安排 2 留守儿童关爱之家网站系统分析 2.1 可行性分析 2.2 系统功能分析 2.3 系统用例分析 2.4 系统流程和逻辑 2.5本章小结 3 留守儿童关爱之家网站总体设计 3.1系统结构设计 3.2系统功能模块设计 3.2 数…

【算法训练记录——Day38】

Day38——动态规划Ⅰ 1.理论#2.leetcode_509斐波那契数3.leetcode_70爬楼梯4.kamacoder_57爬楼梯5.leetcode_746使用最小花费爬楼梯 1.理论 一般解题步骤&#xff1a; 确定dp数组及下标含义确定递推公式数组如何初始化确定递归顺序举例推导dp数组 #2.leetcode_509斐波那契数…

阿里云物联网应用层开发:第一部分,项目简介

文章目录 1、物联网应用层简介2、阿里云物联网应用层开发例程主要内容3、需要掌握基础知识 1、物联网应用层简介 应用层是物联网系统的用户界面&#xff0c;它提供了用户与系统交互的接口&#xff0c;这一层是将网络传输层的数据结果以易于理解和使用的方式呈现给用户&#xf…

vue3 Hooks 函数封装思想 useTable

1.什么是Hooks 1.一系列已use作为开头的方法&#xff0c;它们提供了可以完全避开class写法&#xff0c;在函数组件中完成生命周期 状态管理 逻辑复用等几乎全部的组件开发工作能力 2.Hooks最核心的价值来着内部的状态管理 3. 在vue3中&#xff0c;hooks的概念结合了vue的响应系…

linux虚拟机部署的MySQL如何使用外网访问?教你轻松使用cpolar在centos搭建内网穿透

文章目录 写在前面实现Linux的内网穿透1、官网账号注册2、在Linux部署我们自己的项目3、一键自动下载安装cpolar4、设置自己的token5、启动cpolar服务6、MySQL穿透测试 卸载方法 写在前面 相信很多小伙伴在本地搭建了一个MySQL数据库&#xff0c;想让其他同事或者合作者一起使…

BCFtools安装

记得之前安装这个软件的时候是非常简单的&#xff0c;但是今天重新安装的时候出现了很多的麻烦&#xff0c;想想还是做个记录吧! bcftools的下载地址如下&#xff1a; Releases samtools/bcftools (github.com)https://github.com/samtools/bcftools/releases/这里我们选用的…

力扣523.连续的子数组和

力扣523.连续的子数组和 哈希表记录下标 class Solution {public:bool checkSubarraySum(vector<int>& nums, int k) {//初始化 方便求余数为0的情况unordered_map<int,int> cnt {{0,-1}};int idx0;for(int i0;i<nums.size();i){idx (idx nums[i]) % …

网络安全 文件上传漏洞-21 upload-labs通过全部关卡

通过全部关卡后对 upload-labs实验环境中 文件上传做一个总结&#xff1a;实验环境中文件上传主要分为黑名单、白名单、读取检查文件类型、删除文件几个类型&#xff0c;针对不同的类型可以使用不同的方式绕过&#xff0c;从而上传木马文件&#xff1a; 黑名单验证 如果是黑名…

【数据结构】(C语言):队列

队列&#xff1a; 线性的集合。先进先出&#xff08;FIFO&#xff0c;first in first out&#xff09;。两个指针&#xff1a;头指针&#xff08;指向第一个进入且第一个出去的元素&#xff09;&#xff0c;尾指针&#xff08;指向最后一个进入且最后一个出去的元素&#xff0…