《二十三种设计模式》 第五篇 “工厂模式” (C++实现)

C++——设计模式 面向对象的优点和缺点 面向对象的三大特点 设计模式的六大原则 单例模式(线程安全) 工厂方法模式 适配器模式 代理模式 观察者模式 策略模式 备忘录模式 模板模式 状态模式 责任链模式 装饰模式 命令模式 阅读详情
AI摘要

本文详细介绍了设计模式中的三种工厂模式:简单工厂、工厂方法和抽象工厂,重点讲解其在C++中的实现方式。通过手机品牌生产的实例,说明如何利用工厂模式解耦对象创建过程,并提升系统的可扩展性和维护性,符合开闭原则的设计需求。

工厂模式是二十三中设计模式中最常用的一种模式之一,几乎所有开源的框架都有用到工厂模式。

工厂模式可以分为三种:简单工厂模式、工厂方法模式、抽象工厂模式。

其中,简单工厂模式并没有列入到二十三中设计模式中,应为其太简单了,而且违反了开闭原则。

工厂方法模式 与 抽象工厂模式都是简单工厂模式的延伸。

对于工厂模式,其最主要的作用就是定义对象返回!
就是另外再定义类来定义需要使用到的对象,而不再是在main函数中定义对象。
通俗的讲就是分配对象返回(工厂模式就是用来生产对象的)。


简单工厂模式

简单工厂模式是三个工厂模式中最简单的,其生产可以集中到一个了类中进行分配对象,进行有效的管理。

举一个例子:
现在市面上有许多品牌的手机,假设小米、华为、苹果三个品牌的手机都是在同一个工厂里生产的,且都是同一时间进行生产,那么工厂就可以决定生产哪个品牌的手机了(想生产哪个品牌的手机就生产哪个品牌的手机),这样就是使用到了简单工厂模式的原理。

可以使用在任何需要new对象的项目中!

UNL类图:
在这里插入图片描述

小米、华为、苹果三个类都是继承自手机类,然后手机生产工厂类的实现又依赖于他们三个品牌手机类。

如果还是不懂的话,看下面代码你就会明白他是怎么使用的了。

下面看代码吧:

#include <iostream>
#include <Windows.h>

using namespace std;

// 三台手机的类型
enum PHONE_TYPE {
	MIUI,
	HUAWEI,
	IPHONE
};

// 手机类
class MobilePhone {
public:
	virtual void description() = 0;		// 纯虚函数
};

// 小米手机类
class Miui : public MobilePhone {
public:
	void description() {				// 描述信息
		cout << "小米手机" << endl;
	}
};

// 华为手机类
class Huawei : public MobilePhone {
public:
	void description() {
		cout << "华为手机" << endl;
	}
};

// 苹果手机类
class Iphone : public MobilePhone {
public:
	void description() {
		cout << "苹果手机" << endl;
	}
};


// 手机生产工厂
class Factory {
public:

	// 根据传入来的类型,进行对应的分配对象返回
	MobilePhone *manufacturePhone(PHONE_TYPE type) {
		switch (type) {
			case MIUI:
				return (new Miui());	// 生产小米手机(生成小米手机对象返回)
				break;
			case HUAWEI:
				return (new Huawei());	// 生产华为手机(生成华为手机对象返回)
				break;
			case IPHONE:
				return (new Iphone());	// 生产苹果手机(生成苹果手机对象返回)
				break;
			default:
				return NULL;			// 返回NULL
				break;
		}
	}
};



int main(void) {
	// 建立工厂对象
	Factory *factory = new Factory;

	// 工厂对象调用manufacturePhone方法给父类指针对象分配对象
	MobilePhone *xiaoMi = factory->manufacturePhone(MIUI);
	// 打印描述信息
	xiaoMi->description();

	MobilePhone * huaWei = factory->manufacturePhone(HUAWEI);
	huaWei->description();

	MobilePhone *iphone = factory->manufacturePhone(IPHONE);
	iphone->description();


	// 释放内存
	delete factory;
	delete xiaoMi;
	delete huaWei;
	delete iphone;

	system("pause");
	return 0;
}

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

简单工厂模式虽然简单明了,但是如果需要增加类的话,就得去修改生产手机工厂中类了,这就违反了开闭原则,所以衍生了工厂方法模式。


工厂方法模式

在这里插入图片描述

工厂方法模式,不再只是由一个手机生产的工厂生产手机了,而是每种品牌都有自己的生产工厂,也就是说简单工厂模式中的工厂类不再使用他了,而是使用它的子类进行各自的生产手机。

既你想生产什么手机就生产什么手机,完全不会涉及到其他手机厂商,如果有删除或者增加手机品牌,完全不需要去修改其他手机厂商的代码,这就很好的体现了开闭原则。

可以使用在任何需要new对象的项目中!

如下面的UML图:
在这里插入图片描述
此时手机生产工厂不再运作,而是交由他的子类们运作生产。

看代码就懂了:

#include <iostream>
#include <Windows.h>

using namespace std;

//enum PHONE_TYPE {
//	MIUI,
//	HUAWEI,
//	IPHONE
//};

// 手机类
class MobilePhone {
public:
	virtual void description() = 0;		// 纯虚函数
};

// 小米手机类
class Miui : public MobilePhone {
public:
	void description() {				// 描述信息
		cout << "小米手机" << endl;
	}
};

// 华为手机类
class Huawei : public MobilePhone {
public:
	void description() {
		cout << "华为手机" << endl;
	}
};

// 苹果手机类
class Iphone : public MobilePhone {
public:
	void description() {
		cout << "苹果手机" << endl;
	}
};



// 手机生产工厂
class Factory {
public:
	virtual MobilePhone *manufacturePhone() = 0;	// 纯虚函数
};


// 小米手机生产工厂
class MiuiFactory : public Factory {
public:

	// 生产小米手机(生成小米手机对象返回)
	MobilePhone *manufacturePhone() {
		return (new Miui());
	}
};


// 华为手机生产工厂
class HuaweiFactory : public Factory {
public:

	// 生产华为手机(生成华为手机对象返回)
	MobilePhone* manufacturePhone() {
		return (new Huawei());
	}
};


// 苹果手机生产工厂
class IphoneFactory : public Factory {
public:

	// 生产苹果手机(生成苹果手机对象返回)
	MobilePhone* manufacturePhone() {
		return (new Iphone());
	}
};



int main(void) {
	// 定义工厂指针对象
	Factory *factory = new MiuiFactory;
	// 工厂对象调用manufacturePhone方法给父类指针对象分配对象
	MobilePhone *xiaoMi = factory->manufacturePhone();
	// 打印描述信息
	xiaoMi->description();


	delete factory;	// 释放第一个工厂的内存
	// 从新给工厂对象分配对象
	factory = new HuaweiFactory;
	MobilePhone *huaWei = factory->manufacturePhone();
	huaWei->description();


	delete factory;	// 释放第二个工厂的内存
	// 从新给工厂对象分配对象
	factory = new IphoneFactory;
	MobilePhone *iphone = factory->manufacturePhone();
	iphone->description();


	// 释放内存
	delete factory;	// 释放第三个工厂的内存
	delete xiaoMi;
	delete huaWei;
	delete iphone;

	system("pause");
	return 0;
}

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


抽象工厂模式

抽象工厂模式是工厂方法模式的升级版。

也就是说,抽象工厂模式他不再仅限于生产手机,他还可以生产电脑、音箱、电视机等等。它不再是局限于生产一种类型的生产工厂。

下面我们以上面的手机工厂为基础,在拓展出一个升级版的手机生产工厂,手机二代,毕竟手机也是需要更新换代的嘛。

请看UML类图:
在这里插入图片描述
跟工厂方法模式的类图差不多,就是多了一个升级版的手机类。

看代码就懂了:

#include <iostream>
#include <Windows.h>

using namespace std;


// 手机类
class MobilePhone {
public:
	virtual void description() = 0;		// 纯虚函数
};

// 小米手机类
class Miui : public MobilePhone {
public:
	void description() {				// 描述信息
		cout << "小米手机" << endl;
	}
};

// 华为手机类
class Huawei : public MobilePhone {
public:
	void description() {
		cout << "华为手机" << endl;
	}
};

// 苹果手机类
class Iphone : public MobilePhone {
public:
	void description() {
		cout << "苹果手机" << endl;
	}
};


// 升级版手机类
class NewMobilePhone {
public:
	virtual void newDescription() = 0;
};


// 升级版小米手机类
class NewMiui : public NewMobilePhone {
public:
	void newDescription() {
		cout << "小米手机二代" << endl;
	}
};


// 升级版华为手机类
class NewHuawei : public NewMobilePhone {
public:
	void newDescription() {
		cout << "华为手机二代" << endl;
	}
};


// 升级版苹果手机类
class NewIphone : public NewMobilePhone {
public:
	void newDescription() {
		cout << "苹果手机二代" << endl;
	}
};


// 手机生产工厂
class Factory {
public:

	virtual MobilePhone *manufacturePhone() = 0;	// 纯虚函数

	virtual NewMobilePhone *newManufacturePhone() = 0;	// 纯虚函数
};


// 小米手机生产工厂
class MiuiFactory : public Factory {
public:

	// 生产小米手机(生成小米手机对象返回)
	MobilePhone *manufacturePhone() {
		return (new Miui());
	}

	// 生产升级版小米手机(生成小米手机二代对象返回)
	NewMobilePhone *newManufacturePhone() {
		return (new NewMiui());
	}
};


// 华为手机生产工厂
class HuaweiFactory : public Factory {
public:

	// 生产华为手机(生成华为手机对象返回)
	MobilePhone *manufacturePhone() {
		return (new Huawei());
	}


	// 生产升级版华为手机(生成华为手机二代对象返回)
	NewMobilePhone *newManufacturePhone() {
		return (new NewHuawei());
	}
};


// 苹果手机生产工厂
class IphoneFactory : public Factory {
public:

	// 生产苹果手机(生成苹果手机对象返回)
	MobilePhone *manufacturePhone() {
		return (new Iphone());
	}


	// 生产升级版苹果手机(生成苹果手机二代对象返回)
	NewMobilePhone *newManufacturePhone() {
		return (new NewIphone());
	}
};



int main(void) {
	// 定义工厂指针对象
	Factory *factory = new MiuiFactory;
	// 生产小米手机
	MobilePhone *xiaoMi = factory->manufacturePhone();
	// 生产小米手机二代
	NewMobilePhone *newXiaoMi = factory->newManufacturePhone();
	xiaoMi->description();
	newXiaoMi->newDescription();


	delete factory;	// 释放第一个工厂的内存
	// 给工厂对象分配华为手机对象
	factory = new HuaweiFactory;
	MobilePhone *huaWei = factory->manufacturePhone();
	NewMobilePhone *newHuaWei = factory->newManufacturePhone();
	huaWei->description();
	newHuaWei->newDescription();


	delete factory;	// 释放第二个工厂的内存
	// 给工厂对象分配苹果手机对象
	factory = new IphoneFactory;
	MobilePhone* iphone = factory->manufacturePhone();
	NewMobilePhone* newIphone = factory->newManufacturePhone();
	iphone->description();
	newIphone->newDescription();


	// 释放内存
	delete factory;	// 释放第三个工厂的内存
	delete xiaoMi;
	delete newXiaoMi;
	delete huaWei;
	delete newHuaWei;
	delete iphone;
	delete newIphone;

	system("pause");
	return 0;
}

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


总结:
到了这里,貌似工厂模式中的三种用法也讲完,不知道观看此片博文的朋友有没有看懂呢?按一个方向去想,工厂模式就是生成对象返回的;这样想会不会明白一点呢。
一定要记住,开发中工厂模式是很常用的一种设计模式,必须要学会!

重在理解吧,先把代码搞懂了,在去看类图,两者想着结合,相信一定会看懂的。

大话设计模式抽象工厂模式c++实现 抽象工厂模式 其他二十三种设计模式 #include<iostream> using namespace std; //抽象工厂模式 //抽象用户类 class AbstractUser { public: virtual void Inser() = 0; }; //具体用户类 class SqlserverUser :public AbstractUser { public: virtual void Inser() { cout << "在SQL server中给U 阅读详情

相关推荐

《C++ 设计模式》

设计模式代表了最佳的实践,在面向对象的编程中被很多老鸟们反复使用。使用设计模式有很多好处:可重用代码、保证代码可靠性、使代码更易被他人理解 ......

青春不老,奋斗不止! 9万+

C++设计模式(全23种)

设计模式概述 设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。等这种思想融入到了思想中后,你就会不自觉地使用这种思想去进行你的设计和开发。 文章目录设计模式概述一、创建型模式Factory 模式(工厂模式)AbstactFactory 模式(抽象工厂模式)Singleton 模式( 单例模式)Builder 模式(建造者模式)Prototype 模式(原型模式)二、结构型模式Bridge 模式(桥接模式)总结

weixin_45712636的博客 9万+

C++设计模式系列文章汇总

Jungle整理的C++设计模式系列文章出炉了,每一种设计模式都包含: 理论知识:每一种模式的定义、解释 模式UML结构和角色分析:UML类图说明模式的角色和结构 模式应用实例:将设计模式应用于具体的例子,并给出UML实例类图 完整的源代码:完整的代码和运行结果示意图,源代码资源及UML图可在Git上下载 总结:每一种模式的特点和适用环境 设计模式准备工作 设计模式(一)——设计...

冯Jungle的个人博客 8525

C++ 常用设计模式(学习笔记)

设计模式 1、工厂模式 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。工厂模式作为一种创建模式,一般在创建复杂对象时,考虑使用;在创建简单对象时,建议直接new完成一个实例对象的创建。 1.1、简单工厂模式 主要特点是需要在工厂类中做判断,从而创造相应的产品,当增加新产品时,需要修改工厂类。使用简单工厂模式,我们只需要知道具体的产品型号就可...

duchengjun的博客 1910

comsol 多物理场仿真流程-以开关柜为例

1、主要方法 在SolidWorks中对于开关柜的内部与外部结构进行建模,生成能够导入软件计算的3D模型。将SolidWorks中的模型导入comsol软件中,设置参数进行多物理场耦合仿真。 1、具体步骤 删除高压开关柜中对其内部电磁环境无较大影响的结构,如低压测量柜、断路器内部结构等。 导入模型:将厂家提供的3D模型转化为solidworks结构模型。 修复模型:修复已转化模型中转化错误的部分、修复已转化模型中非实体部分、修复已转化模型中重叠实体部分 化简模型:去除过于...

健忘16的博客 7020

STM32--基于STM32F103C8T6的OV7670摄像头显示

使用 STM32F103C8T6 微控制器驱动 OV7670 摄像头模组,并将图像数据显示在屏幕上,是嵌入式系统中常见的图像采集与显示应用。OV7670 是一款 CMOS VGA 图像传感器,具有高灵敏度、低电压等特点,适用于嵌入式应用。而 STM32F103C8T6 是一款常用的 MCU 控制器,具有丰富的管脚资源和较高的工作频率。

duierrorshuobu的博客 2145

C++设计模式总结

一、单例模式 一个类不管常见多少次对象,永远只能得到该类型一个对象的实例 // p1、p2、p3指向同一对象 A* p1 = new A(); A* p2 = new A(); A* p3 = new A(); 饿汉式单例模式: 还没有获取实例对象,实例对象就已经产生了 优点:线程安全。对象存放在数据段,main函数还没有开始执行,对象就已经初始化好了,一定是线程安全的。 缺点: 获取在软件启动的时候,并没有使用到这个对象,然而这个对象已经产生,这就比较浪费资源。 #include<iostream

长期更新自学笔记 5246

Neo4j桌面版导入CVS文件

我们的relation.csv是这样的。

m0_53573725的博客 816

c++—设计模式

c++—设计模式

m0_72814368的博客 3014

Innovus实战:5分钟搞定postRoute阶段冗余hold buffer的自动清理(附PHC识别技巧)

本文分享了在数字IC后端设计中使用Innovus工具,于postRoute阶段自动清理冗余hold buffer的实战技巧。通过配置时序感知的面积回收模式,可在5分钟内安全移除非关键路径上的PHC缓冲器,有效优化芯片面积与功耗,并附有PHC识别与验证方法。

moon9的博客 399

《QGIS快速入门与应用基础》151:批量属性值赋值(字段计算器)

本文介绍了QGIS中字段计算器的批量属性值赋值方法,重点讲解了简单赋值(统一值和递增序列)的操作步骤与表达式应用。文章首先强调数据备份、字段类型确认等必要前提,随后详细解析字段计算器的界面功能分区和打开方式。通过具体场景示例,展示了如何为图层统一赋值固定值或生成连续编号序列,并提供了文本、数字、日期等不同字段类型的表达式模板。文中特别提醒新手优先创建新字段而非直接更新现有字段,以避免数据丢失风险,同时推荐使用$id和rownum()函数实现基础序列生成。该教程适合GIS初学者快速掌握批量属性编辑的核心技能。

LuckyHanMo的博客 486

二十三种设计模式——工厂模式

前页:二十三种设计模式总说 工厂模式(Factory Pattern):创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 每次看定义的时候都是一头雾水,实际上就是类似于函数的重载而已。 通过菜鸟教程,总结出使用工厂模式的几种方法: 实现接口。 C++中没有接口这个概念,C++中接口的实现是通过抽象类完成的。如果不知道什么是抽象类,请看:抽象类与纯虚函数。...

wufeifan_learner的博客 257

破盾实录|Vueling航空阿卡迈防护逆向:从503挑战到Cookie生成的全流程拆解

摘要:文章分享了作者在爬取西班牙伏林航空(Vueling)机票数据时,遭遇阿卡迈(Akamai)防护系统的实战经历。起初简单的请求被拦截返回503错误,分析发现阿卡迈通过混淆JS代码实施"挑战-验证"机制,需模拟真实浏览器环境才能获取有效Cookie。作者详细拆解了逆向过程:从抓包分析JS挑战流程,到破解代码混淆和控制流平坦化,最终用Python+Pyppeteer成功模拟浏览器特征,突破防护获取数据。整个过程涉及JS反混淆、环境检测绕过和Cookie生成验证等关键技术点,为类似防护系统

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1642

设计模式(C++实现)(总)

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式乃一个程序员的内功修炼。 有很多关于设计模式的书籍,比如轻松易读的《大话设计模式》、最为经典的GoF的《设计模式》、国人的经典原创《道法自然》等,网上关于设计模式的资料也非常多,且内容全面。但关于设计模式的书籍和网上的资料使用C++代码来举例实现的并不多,例如G

huashuolin001的博客 1145

数据挖掘实战-基于KMeans算法对超市客户进行聚类分群

本实验基于KMeans算法对超市客户进行了聚类分群。通过对客户购物数据进行聚类,我们成功将客户分为不同的群体。每个群体代表了具有相似购物行为和偏好的客户群体。通过实验结果,我们发现了客户群体之间的明显差异和共性。不同群体的客户在购买频率、购物金额和购买种类等方面有所区别。这为超市提供了重要的市场细分信息,帮助超市经营者更好地了解不同客户群体的需求和喜好,制定有针对性的营销策略和商品推荐,提高客户满意度和忠诚度。此外,实验还揭示了超市客户的购物行为规律,为超市优化商品陈列和促销策略提供了指导。

m0_64336780的博客 2万+

基于Simulink的加速度计振动分析:单自由度质量-弹簧-阻尼系统

摘要:基于Simulink的加速度计单自由度振动分析 本文研究了加速度计的单自由度(SDOF)质量-弹簧-阻尼系统模型,通过MATLAB/Simulink平台建立了完整的振动分析仿真系统。文章详细阐述了理论建模过程,推导了系统运动微分方程和传递函数,并提供了Simulink模型搭建的具体步骤和MATLAB实现代码。研究通过正弦扫频、随机振动和冲击响应三种典型输入信号,分析了系统的幅频特性、相频特性及时域响应,验证了加速度计的工作机理。仿真结果表明,该方法能有效模拟加速度计在不同激励条件下的动态特性,为传感器

AI的内部世界的博客 162

以C/C++语法浅谈二十三种设计模式(一)——工厂模式(Factory Method)

0.写在前面 在软件开发过程中,为了提高开发效率、增强软件运行的稳定性,降低后期项目维护的成本,我们志在追求更加高效、简单的设计思路来引领我们的项目产品,在经过不断的探索与总结的过程中,我们最常用的设计模式有23中,总体分为三大类,即创建型模式、结构型模式和行为型模式,具体如下: 模式分类 具体模式 创建型模式 工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式 结构型...

尘海折柳的博客 1560

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

二十三种设计模式:工厂模式

当我们需要创建多个相似的对象时,可以使用工厂模式来实现对象的创建和使用的分离。工厂模式通过定义一个抽象工厂接口和多个具体工厂类来实现对象的创建,同时通过定义一个抽象产品接口和多个具体产品类来实现对象的使用。客户端代码通过调用具体工厂类的方法来创建具体产品对象,并通过抽象产品接口来使用这些对象。工厂模式的优点是可以将对象的创建和使用分离,使得代码更加灵活和易于维护。同时,工厂模式也可以通过添加新的具体工厂类和具体产品类来扩展系统的功能。

ALex_zry的博客 724

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【设计模式】之二十三种设计模式--抽象工厂模式

抽象工厂模式

胖狗子修行之路的博客 377

23种设计模式

设计模式

nameofcsdn的博客 6823

C++二十三种设计模式之工厂方法模式

C++二十三种设计模式之工厂方法模式,概述了它的组成、特点、目的、缺点、示例代码。

qq_45297613的博客 562

C++二十三种设计模式之抽象工厂模式

C++二十三种设计模式之抽象工厂模式,概述了它的组成、特点、目的、缺点、示例代码。

qq_45297613的博客 595

大话设计模式工厂方法模式c++实现

工厂方法模式 其他二十三种设计模式 #include<iostream> using namespace std; //工厂方法模式 //抽象运算类 class AbstractOperation { public: virtual int GetResult() = 0; void Get(int _NumberA, int _NumberB) { this->NumberA = _NumberA; this->NumberB = _NumberB; } prote

wode_0828的博客 305

设计模式学习(C++)总结

 至此,对于设计模式的学习也就告一段落了,这段时间也就相当于走马观花一般地把二十三种设计模式全过了一遍,整体感觉有些模式在实际运用中很常见,但是有些模式似乎没怎么见过,不过这种设计模式的解决问题的核心思想才是学习的关键。  以下即为二十三种设计模式的大意与链接:(我认为重要的模式均进行了加粗处理) 一、创建型模式 单例模式:保证为一个类只生成唯一的实例对象,分为饿汉式和懒汉式;单例模式 工厂模式...

方寸间沧海桑田的博客 585

C++设计模式

工厂模式观察者模式。

C18304057755的博客 442

《大话设计模式》Python版代码实现

上一周把《大话设计模式》看完了,对面向对象技术有了新的理解,对于一个在C下写代码比较多、偶尔会用到一些脚本语言写脚本的人来说,很是开阔眼界。《大话设计模式》的代码使用C#写成的,而在本人接触到的面向对象语言中,只对C++和Python还算了解,为了加深对各个模式的理解,我在网上下载了一个C++版的源代码,并根据自己的理解边读这本书边动手实践C++源代码,同时将其改写成了Python代码,算是一箭三

Cyberspace 1130
上一篇: C/C++ 被隐藏的父类函数
下一篇: C/C++ 比 ‘二叉树算法’ 效率更高的 ‘哈希表算法’
cpp_learners
博客等级 码龄7年 1526粉丝 274原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpp_learners

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值