C++ //练习 13.28 给定下面的类,为其实现一个默认构造函数和必要的拷贝控制成员。

ops/2024/11/9 16:44:55/

C++ Primer(第5版) 练习 13.28

练习 13.28 给定下面的类,为其实现一个默认构造函数和必要的拷贝控制成员。

( a )
class TreeNode{private:string value;int count;TreeNode *left;TreeNode *right;
};
( b )
class BinStrTree{private:TreeNode *root;
};
环境:Linux Ubuntu(云服务器)
工具:vim

 

代码块
( a )
class TreeNode {
private:std::string value;int count;TreeNode *left;TreeNode *right;public:TreeNode(const std::string& val = std::string(), int cnt = 0): value(val), count(cnt), left(nullptr), right(nullptr) {}TreeNode(const TreeNode& other): value(other.value), count(other.count) {left = other.left ? new TreeNode(*other.left) : nullptr;right = other.right ? new TreeNode(*other.right) : nullptr;}~TreeNode() {delete left;delete right;}TreeNode& operator=(const TreeNode& other) {if (this != &other) {TreeNode tmp(other);std::swap(value, tmp.value);std::swap(count, tmp.count);std::swap(left, tmp.left);std::swap(right, tmp.right);}return *this;}
};( b )
class BinStrTree {
private:TreeNode *root;public:BinStrTree() : root(nullptr) {}BinStrTree(const BinStrTree& other) {root = other.root ? new TreeNode(*other.root) : nullptr;}~BinStrTree() {delete root;}BinStrTree& operator=(const BinStrTree& other) {if (this != &other) {BinStrTree tmp(other); // Copy-constructorstd::swap(root, tmp.root);}return *this;}
};

http://www.ppmy.cn/ops/22770.html

相关文章

iOS pod库包含MRC类

在我们iOS开发过程中,碰到的大部分文件都是基于ARC内存管理的,但也免不了用到一些三方的MRC的代码,这里介绍三种方法来编写包括MRC文件的.podspec文件。 1).在podspec中指定requires_arc:false,同时指定requires_arc的文件,eg: 这样写的好处是别的项目拉取到你pod源码的时候,不…

深度学习中的子空间、线性变换和矩阵概念应用

1.表示子空间 在深度学习中,“不同的表示子空间”通常是指模型通过不同的参数(例如权重矩阵)将输入数据映射到不同的高维空间,这些空间被称为表示子空间。每个子空间都能够捕获输入数据中不同的特征或模式。以下是一些详细解释&am…

Virtualbox7.0.10--创建虚拟机

前言 下载Virtualbox7.0.10,可参考《Virtualbox–下载指定版本》 Virtualbox7.0.10具体安装步骤,可参考《Virtualbox7.0.10的安装步骤》 创建虚拟机 1.双击打开Virtualbox 后,单击“新建”,进入新建虚拟电脑页面 2. 设置虚拟电脑…

深度学习--RNN循环神经网络和LSTM

RNN RNN简介 我们来看一看百度百科给的解释 下面是循环神经网络的一部分 黑色直线代表权重,a1,a2代表存储单元,黄色框框代表输入,曲线是激活函数 RNN常用领域 语言建模(Language Modeling):…

GESP一级 - 第二章 - 第3节 - 数据类型的转换

数据类型转换学习目录 1. 数据类型转换的概念 1.1 什么是数据类型转换 数据类型转换是指将一种数据类型的值转换为另一种数据类型的值的过程。在C编程中,有时我们需要将数据从一种类型转换为另一种类型,以满足不同的需求。 示例1: 将整数转换为浮点数 int num1 10; double …

C++笔试强训day10

目录 1.最长回文字符串 2.买卖股票的最好时机(一) 3.过河卒 1.最长回文字符串 链接 一开始没认真看题目,直到提交了好几遍没过还是没去检查题目,一直检查代码逻辑,哎呦,难受了。 我以为是收尾字母相同就行了。 错误代码&…

数字水印技术评价指标

一、常见的攻击算法 数字水印攻击方式包括鲁棒性攻击、表示攻击及解释攻击等。目前最常见的攻击就是鲁棒性攻击,也是最有效的检测手段。表示攻击可以让检测器检测不到水印的存在,解释攻击与鲁棒性攻击原理相反,利用水印技术的逆方法伪造水印…

JAVA:后端框架-将servlet+jsp改为springboot+jsp需要做什么

目录 POJO(作为实体): 添加注释Entity Id DAO(作为存储库):使用Spring Boot时,不需要具体的DAO实现或JdbcUtils COMMON(应用配置):JdbcUtils 与 JdbcTempla…