【C++ Primer Plus习题】14.3

大家好,这里是国中之林!
❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←

问题:

这里是引用

解答:
main.cpp

#include <iostream>
#include "queuetp.h"using namespace std;int main()
{QueueTp<Worker> lolas;Worker w1;lolas.queuecount();w1.set();lolas.enqueue(w1);Worker w2;lolas.dequeue(w2);w2.show();cout << "Bye.\n";return 0;return 0;
}

queuetp.h

#pragma once
#include <iostream>
#include <string>using namespace std;class Worker
{
private:string fullname;long id;public:Worker():fullname("no one"),id(0L){}Worker(const string &s,long n):fullname(s),id(n){}~Worker() {};void set();void show()const;
};template <class T>class QueueTp
{
private:enum {Q_SIZE=10};struct Node { T item; Node* next; };Node* front;Node* rear;int items;const int qsize;QueueTp(const QueueTp&q):qsize(0){}QueueTp& operator=(const QueueTp& q) { return *this; }
public:QueueTp(int qs = Q_SIZE) :qsize(qs){front = rear = NULL;items = 0;}~QueueTp(){Node* temp;while (front){temp = front;front = front->next;delete temp;}}bool isempty()const;bool isfull()const;int queuecount()const;bool enqueue(const T& item);bool dequeue(T& item);
};template <class T>
bool QueueTp<T>::isempty()const
{if (items == 0)return true;else return false;
}
template <class T>
bool QueueTp<T>::isfull()const
{return items == Q_SIZE;
}
template <class T>
int QueueTp<T>::queuecount()const
{return items;
}
template <class T>
bool QueueTp<T>::enqueue(const T& item)
{if (isfull())return false;Node* temp = new Node;temp->item = item;temp->next = NULL;items++;if (front == NULL){front = temp;}else{rear->next = temp;}rear = temp;return  true;
}
template <class T>
bool QueueTp<T>::dequeue(T& item)
{if (isempty())return false;item = front->item;items--;Node* temp = front;front = front->next;delete temp;if (items == 0){rear = NULL;}return true;}

queuetp.cpp

#include "queuetp.h"void Worker::set()
{cout << "请输入工人的姓名:";getline(cin, fullname);cout << "请输入工人的id:";cin >> id;while (cin.get() != '\n')continue;
}
void Worker::show()const
{cout << "工人姓名:" << fullname << endl;cout << "工人id:" << id << endl;
}

运行结果:
在这里插入图片描述

考查点:

  • 链队列
  • 模板类

注意:

  • 模板类成员函数的实现最好在一个文件中,不要分开,不然会报调不到函数的错误.

2024年9月10日21:48:36

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

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

相关文章

JavaWeb后端开发总结(3)

AOP基础 AOP概述 首先我们要知道AOP是什么&#xff1f; 看下图 个人解析&#xff1a; AOP叫做面向切面编程&#xff0c;但是实际上就是面向方法编程 图中下面一部分是一个AOP的案例 AOP快速入门案例代码实现 案例&#xff1a;测出业务中各个业务方法所需的执行时间 如果…

framebuffer帧缓存

framebuffer:帧缓冲&#xff0c;帧缓存 Linux内核为显示提供的一套应用程序接口。&#xff08;驱动内核支持&#xff09; framebuffer本质上是一块显示缓存&#xff0c;往显示缓存中写入特定格式的数据就意味着向屏幕输出内容。framebuffer驱动程序控制LCD显示设备&#xff0…

进程与计划任务

top 查看进程 x users 表示有几个shell开启 x stopped 前台任务在后台暂停firefox & 在后台运行&#xff0c;不在前面显示 ​​​​​​​这种方式常用于需要长时间运行且不需要即时交互的程序或命令&#xff0c;以便用户可以在终端中使用其他命令或进行其他操作&#…

JAVA实习生(月薪3K-5K)应该具备哪些知识、能力

实习生其实属于 Java 基础水平&#xff0c;所以应该具备有基础知识的能力如下: 1、Java 语言基础 Java 语言基础是 Java 开发的必备知识&#xff0c;包括语法、数据类型、运算符、控制语句、类和对象等内容。掌握 Java 语言基础是进一步深入学习和应用的某础 也是通过Java编写…

Linux平台屏幕|摄像头采集并实现RTMP推送两种技术方案探究

技术背景 随着国产化操作系统的推进&#xff0c;市场对国产化操作系统下的生态构建&#xff0c;需求越来越迫切&#xff0c;特别是音视频这块&#xff0c;今天我们讨论的是如何在linux平台实现屏幕|摄像头采集&#xff0c;并推送至RTMP服务。 我们知道&#xff0c;Linux平台&…

debug对于开发工程师很重要

在日常开发中&#xff0c;总会遇到一些出人意料的bug&#xff0c;程序跑飞&#xff0c;上电就挂&#xff0c;程序没有按预期执行诸如此类的问题&#xff0c;没有好的调试方法&#xff0c;真的很难定位问题&#xff0c;更别说解决了。在这里分享我用过的一些调试方法&#xff0c…

后端开发面经系列--百度秋招一二三面

百度秋招一二三面 公众号&#xff1a;阿Q技术站 来源&#xff1a;https://www.nowcoder.com/discuss/550679042400317440 一面 1、虚函数&#xff1f; 什么是虚函数&#xff1a; 虚函数是在基类中声明的&#xff0c;而在派生类中进行重写&#xff08;override&#xff09…

“论剑”智算时代,长沙已经站在计算产业的“华山之巅”

文 | 智能相对论 作者 | 陈泊丞 共赴全新十年之约&#xff0c;长沙又来搞大事情了&#xff01; 2024互联网岳麓峰会以“AI汇湘江 数智领航未来”为主题&#xff0c;全面聚焦在“AI”时代把握数字化、网络化、智能化发展机遇&#xff0c;积极响应当前人工智能技术迅猛发展的势…

Qt5.4.1连接odbc驱动操作达梦数据库

Qt5.4.1连接odbc驱动操作达梦数据库 1 环境介绍2 Qt5.4.1 安装2.1 图形化界面安装Qt5.4.12.2 配置Qt5.4.1 环境变量2.3 Qt5.4.1 生成 libqsqlodbc.so 并配置2.3.1 生成Makefile2.3.2 查看 libqsqlodbc.so 文件并配置 3 配置Qt测试用例4 达梦数据库学习使用列表 1 环境介绍 CPU…

实现卷积层的前向传播(Pythom版)

在TensorFlow框架中&#xff0c;实现卷积层&#xff08;2维&#xff09;的代码是 tf.keras.layers.Conv2D()。它主要接收如下几个参数&#xff0c; filters&#xff1a;卷积核的个数&#xff0c;也就是卷积层输出的通道数&#xff08;沿axis-1的维度&#xff09; kernel_size&a…

【CSS】mask-image属性的详细介绍

mask-image属性是CSS中一个用于指定元素遮罩图像的属性。它允许开发者通过图像来遮罩元素的背景或其他图像内容&#xff0c;实现复杂的视觉效果。以下是对mask-image属性的详细介绍&#xff1a; 一、属性定义 mask-image属性定义了一个图像的遮罩层&#xff0c;该遮罩层将应用…

风语者:CG-23超声波风速风向传感器,与自然对话的桥梁

超声波风速风向传感器&#xff0c;又名超声波风速风向计或超声波风速风向仪&#xff0c;是一款基于超声波原理研发的风速风向测量仪器。以下是对该传感器的详细介绍&#xff1a; 一、工作原理 超声波风速风向传感器的工作原理主要基于超声波时差法。传感器通常由发射器和接收…

性能碾压pandas、polars的数据分析神器来了

来源&#xff1a;python大数据分析 费弗里 1 简介 就在几天前&#xff0c;经过六年多的持续开发迭代&#xff0c;著名的开源高性能分析型数据库DuckDB发布了其1.0.0正式版本。 DuckDB具有极强的单机数据分析性能表现&#xff0c;功能丰富&#xff0c;具有诸多拓展插件&#xf…

时空特征融合方向小论文创新点一次性都给你!看到就是赚到

朋友们&#xff0c;今天给大家推荐一个发小论文很不错的方向&#xff1a;时空特征融合。 时空特征融合是一种提高模型性能和准确性的关键技术&#xff0c;通过结合空间和时间维度的信息&#xff0c;它可以显著提高模型的预测精度和泛化能力&#xff0c;给我们提供更全面的数据…

惊!还有这种邮件群发神器!?

邮件群发工具是推广营销的重要利器。这种软件具备强大的功能&#xff0c;能够批量发送邮件&#xff0c;确保所发送的邮件不易被标记为垃圾邮件。同时&#xff0c;它还包括自动地址采集和整理功能&#xff0c;能够快速获取邮箱地址&#xff0c;省去了寻找地址的麻烦。 功能亮点&…

Trm理论 2(Word2Vec)

神经网络模型&#xff08;NNLM&#xff09;和Word2Vec NNLM模型是上次说过的模型&#xff0c;其目的是为了预测下一个词。 softmax(w2tanh(w1x b1)b2) 会得到一个副产品词向量 而Word2Vue就是专门求词向量的模型 softmax(w2*(w1*x b1)b2) Word2Vec softmax(w2*(w1*x b1)b…

好父母的新定义,看完后,你就不会再焦虑了!

前言 曾几何时&#xff0c;我们认为的完美父母应该是不打不骂&#xff0c;不吼不叫&#xff0c;能够理解孩子的需求&#xff0c;能够接受孩子的情绪&#xff0c;能够温和且坚定的拒绝孩子的请求..... 是的&#xff0c;这些都没有错&#xff0c;但我们把自己放在哪里&#xff…

Android SSE 单向接收数据

Server-Sent Events&#xff08;SSE&#xff09;是一种在客户端和服务器之间实现单向实时通信的技术。它允许服务器向客户端推送数据&#xff0c;但客户端无法使用 SSE 向服务器发送数据。这使得其适用于需要持续接收服务器数据的应用场景&#xff08;如实时通知、股票行情、社…

连续信号的matlab表示

复习信号与系统以及matlab 在matlab中连续信号使用较小的采样间隔来表四 1.单位阶跃信号 阶跃信号:一个理想的单位阶跃信号在时间 t 0 之前值为0&#xff0c;在 t 0 及之后值突然变为常数 A&#xff08;通常取 A 1&#xff09; %matlab表示连续信号,是让信号的采样间隔很小…

鸿蒙 ArkTS声明式 UI 语法

鸿蒙&#xff08;HarmonyOS&#xff09;的ArkTS&#xff08;ArkUI的TypeScript扩展&#xff09;确实支持声明式UI语法&#xff0c;这种语法允许开发者以声明的方式描述UI组件的结构、样式和行为&#xff0c;而不是直接操作DOM或类似的结构。然而&#xff0c;需要注意的是&#…