- 博客(66)
- 收藏
- 关注
转载 C++设计模式(3)抽象工厂模式
与抽象工厂最搭大的区别:工厂方法模式只有一个抽象产品类,而抽象工厂模式有多个。工厂方法模式的具体工厂类只能创建一个具体产品类的实例,而抽象工厂模式可以创建多个。优点:1、抽象工厂模式隔离了具体类的生产,使得客户并不需要知道什么被创建。2、当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象。3、增加新的具体工厂和产品族很方便,无须修改已有系统...
2018-07-25 16:03:41 200
转载 对于递归的深入理解
这篇文章大概对于小伙伴们理解递归有启发性的帮助递归核心:“递”是问题的描述,“归”才是问题的解决的本质。问题解决的时机也要根据具体情况分析,可以在“递”的过程中,也可以在“递”的终点,也可以在“归的途中”,甚至可以没有归(如果问题在终点已经解决,就没有必要“归”)递归的形式:“递”+“结束条件”+“归”递归真是个奇妙的思维方式。对一些简单的递归问题,我总是惊叹于递归描述问题和编写代码的简洁。但是总...
2018-03-20 10:36:47 559
原创 C++设计模式(2)---工厂方法
特点:核心思想是封装类中不变的部分,提取其中变化较大的部分为独立类,比如添加新的产品就没有必要改变工厂类。直接添加工厂子类,符合了“高内聚,低耦合”的程序设计思想。优点:客户不需要在创建产品时提供具体的产品信息,使对外接口更加安全,封装性更强。使模式的灵活性更强。缺点:每增加一个产品,相应的要增加一个子工厂,加大了额外的开发量。适用场景:1.对于某个产品调用者知道使用哪一个具体的工厂生产,实例化该...
2018-03-12 20:03:07 219
原创 C++设计模式(1)---简单工厂模式
特点:由一个工厂对象决定创建出哪一种产品类的实例,是工厂模式家族中最为简单实用的一种模式优点:工厂类是整个模式的关键:根据外界给定的信息,进行逻辑判断,决定创建哪一个具体类的对象。避免了外界可以直接创建具体的产品,隐藏了产品对象是如何创建以及如何组织的。缺点:由于工厂类集中了所有实例的逻辑,违反了高内聚(单一责任原则)的软件设计原则如果需要添加新的产品类,则需要改变工厂类 使用场景:1....
2018-03-11 21:42:06 217
转载 static在c++类中的作用
在类中声明static变量或者函数时,初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员,这样就出现以下作用:(1)类的静态成员函数是属于整个类而非类的对象,所以它没有this指针,这就导致 了它仅能访问类的静态数据和静态成员函数。 (2)不能将静态成员函数定义为虚函数。 (3)由于静态成员声明于类中,操作于其外,所以对其取地址操作,就多少有...
2018-03-10 09:30:38 1567
原创 Effective c++ 0.导读
此书目的:介绍c++编程方向与观点,如何规避编译器难以显露的问题 彻底了解c++如何行为,为什么那样行为,以及如何运用其行为形成优势要求:了解每个条款背后的原理,恰当的套用所开发的软件中术语声明式:告诉编译器某个东西的名称和类型,但是略细节 extern int a;签名式:每个函数的声明揭示了其签名式,也就是参数和返回类型--如std:...
2018-03-05 20:55:52 170
原创 阿里云ubantu16.04搭建私有云nextcloud
之前在和学长的闲聊中得知阿里云服务器有学生机,于是回来就兴冲冲的赶紧租了,但是租完服务器总要实现一些功能。于是就有了搭建私有云的想法。期间向学长请教了,自己也遇到一些问题,所以在这里将搭建私有云的步骤记录下来,供有兴趣的道友参考。1.在阿里云租借基础配置服务器,我是学生所以就租的学生机。服务器配置信息:cpu 1核,内存2G。2.实现远程登录,我用的是xshell,ssh登录。前提是要在阿里云服务...
2018-02-20 20:50:46 610
原创 约瑟夫问题---数组实现
include using namespace std;define N 41define M 3int main() { int a[100] = { 0 }; for (int i = 1; i <= N; i++) { a[i] = i; } int remain = N; int count = 0; //计数器
2018-02-03 22:55:49 183
原创 QT笔记---UI学习
UI学习 添加图片素材的步骤:新建文件—QT—-Resources File—–(先将素材加入工程),添加现有文件 右击图片会有copy path选项注意: 相应控件头文件要添加 使用帮助文档获取信息,有的类有继承关系,有的方法可能在父类中 关注文档相应类的public function 和 signals 关注方法的参数,返回值类型以下是简单实现各个控件功能 /1.将按钮替
2018-02-03 19:38:54 314
原创 约瑟夫问题---单向循环链表
include using namespace std;define N 41define M 3struct node{ int value; struct node * next; }; typedef struct node* Node;bool initNode(Node *head); bool insert_tail(Node head, int value);
2018-02-02 22:52:02 230
原创 求未知长度链表的中间结点---快慢指针
优点:普通方法需将链表完全遍历,使用快慢指针将时间缩短了一半 版本一:问题所在—-一旦链表的节点是偶数循环错误include using namespace std;struct node{ int value; struct node * next; }; typedef struct node* Node;bool initNode(Node *h
2018-02-02 21:56:02 173
原创 冒泡,选择,插入排序
/冒泡/include using namespace std; int main() {int a[10] = { 1, 5, 3, 2, 4, 7, 9, 6, 8, 0 };int temp = 0 , i =0 , j = 0;for (i = 0; i < 10; i++) for (j = 0; j < 9-i ; j++)//注意9-i是对...
2018-01-29 23:48:28 159
原创 类和对象
构造函数: /* 1.函数名和类名相同,没有返回值,不需要用户显示调用 2.在创建对象时自动调用 作用:对新建对象初始化 3.允许重载–>这就意味着创建一个的对象只能调用一个构造函数 4.默认构造函数–>,没有形参,函数体为空 5.一个类必须有一个构造函数,一旦用户自定义构造函数,编译器就不会生成默认构造函数 6.构造函数的参数列表–>对成员变量进行初始化赋值
2018-01-29 14:42:23 148
原创 c++primer第一章笔记
第一章 1.p14 从键盘读取数据,当要结束输入时,ctrl+z 再按enter(文件结束符)2.extern 表示只是声明,而不是初始化 第二章 1.强制类型转换 2.含有无符号的表达式 在表达式内如果有了无符号数,那么你就得保证关于它的结果也是非负的,这样的话,如果你给它一个负值,那么编译器会取模。 3. 初始化和赋值的区别: 初始化:是在创建变量时给变量赋一个初始值
2018-01-27 22:35:51 187
原创 python问题请教:大佬们 AttributeError: 'int' object has no attribute 'save_bullet'
coding=utf-8class Person(object): “”“人的类”“” def init(self,name): super(Person, self).init() self.name = name self.gun = None self.hp = 100def zhuang_dan(se
2017-10-19 00:02:41 8986 2
转载 sqlite3数据库
sqlite3数据库(1)什么是sqlite3 SQLite是一款轻型的数据库,是遵守ACID的关系式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、PHP、Java等,还有ODBC接
2017-06-18 22:02:33 611
转载 Xbox负责人谈为何不支持VR:过度关注VR很危险
微软在2017年的 E3 展前发布会上重点展示 Xbox One X 主机,并没有提及配备 VR 技术。在发布会结束后的头几天里,微软公司一直回避 VR 这个话题。直到昨晚,游戏网站 Giant Bomb 的创始人杰夫·格斯特曼(Jeff Gerstmann)对 Xbox 事务负责人菲尔·斯宾塞(Phil Spencer)进行了一段访谈,斯宾塞提到了他对于游戏产业的看法,并且坦率的表达了微软公司对
2017-06-17 22:30:36 267
转载 数据结构学习方法
从刚上大学在课堂上听老师讲解,到后来自学,反复学等种种失败经历给了我当头棒喝。我这样的小渣渣还真是难以捧本书看一看就能学懂。还真得特殊准备一套方法来学习它。借助知乎,网上大神,ACMer的经验分享,我自己总结了一个入门的学习方法,让我快乐且热情的坚持下来了对数据结构与算法的学习。(仅针对初学者的入门级学习,大神们请绕过,拜拜么么哒)好,剩下来像我一样的阿渣们,让我们先来痛快的分(tu)析(cao)下
2017-06-15 22:22:01 2292 2
转载 单片机学习路线
单片机怎么学,学哪款单片机呢?(大一大二)入门级推荐学习51单片机。因为——51单片机简单易上手资料多,当然最最重要的是,本人发现了51单片机的一套秒杀本人接触过的所有教程的资料——金沙滩宋老师的手把手教你学51单片机,绝对经典。(我不是他的托,他没给我钱,我也没买过他的东西,免费用的他的资料)这里得好好感谢宋老师。很多人推荐guo的单片机,说实话guo的代码真的相当不咋地,同时肯定也有很多人推荐普
2017-06-15 22:18:09 12163 3
转载 消息队列Linux
一、消息队列概述 消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。 目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。 二、消息队列应用场景 以下介绍消息队列在实际应用中常用的使用场景。异步处理,应
2017-06-15 22:15:13 333
转载 进程间通信——共享内存
共享内存区是可用IPC形式中最快的。一旦这样的内存区映射到共享它的进程的地址空间,这些进程间数据的传递就不再涉及内核(这里说的不涉及内核的含义是:进程不再通过执行任何进入内核的系统调用来彼此传递数据)。然而往该共享内存区存放信息或从中取走信息的进程间通常需要某种形式的同步,同步的方式有多种,比如:信号量、互斥锁等等。以下两图分别描述了读写消息时,一个要进入内核,而一个不进入内核的情况:对于Syst
2017-06-15 22:07:03 172
转载 Linux进程间通信——管道
linux下进程间通信的几种主要手段: 1.管道(Pipe)及有名管道(named pipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信; 2.信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix
2017-06-15 22:02:53 198
转载 世界首个合法授权:双人飞行汽车GyroDrive已上路
这部价值5万英镑的双人小型飞行汽车“GyroDrive”,近期获得相关授权许可,可以路上行驶和空中飞行。根据雷锋网获悉的相关简介如下:这部小型飞行器仅需要不到100米的跑道便能起飞飞行器使用旋翼完成上下移动,借助“推进螺旋桨”向前运动它在空中可以180公里/小时的速度飞行,飞行范围为600公里双座GyroDrive的最大行驶速度只有4
2017-06-10 21:38:46 293
转载 进程
在我看来,进程就是当系统在执行某个程序时,分配和释放的各种资源的过程(是过程,所以当程序退出时,进程也就结束了)!进程和程序有什么区别呢???程序是静态的,只是占用了一段内存空间,没有其他任何意义;而进程是动态的,它是程序执行的过程。 ps -axj上图是在终端输入ps -axj得到的结果的最上端不按上图的顺序说,先说用最多的:PID:进程号(Process I
2017-06-09 22:08:32 204
转载 嵌入式系统学习路线
嵌入式系统方向嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk
2017-06-07 22:26:04 1022
转载 c语言文件读写相关函数
1.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针。 参数filename指向要打开的文件名,mode表示打开状态的字符串,其取值如下: 字符串 含义 "r" 以只读方式
2017-06-07 22:13:57 530
原创 文章标题
二叉树的相关知识点 1.四种遍历方法 2.更新树中的值 掌握重点: 1.对树要理解,以及其中的每个部分的意义 2.此学习代码是以二叉树为基础 3.理解前,中,后序遍历以及按层遍历,重点就是分清左右遍历与根节点遍历的先后顺序。 4.理解字符串(树的表示)中每个字符与树对应关系,这样才能用switch语句建立联系 5.遍历中使用了递归算法,要充分理解 6.知识点和链表有联系,注意两者间
2017-06-05 22:50:44 161
转载 文件读写
#include#include#include#include#include#includeint main(){int fd = open("./test2", O_RDWR | O_TRUNC);if (-1 == fd){perror("open");return 1;}char *str = "123";int
2017-06-04 23:13:17 190
转载 智能扬声器市场遭谷歌亚马逊包夹
网易科技讯6月3日消息,据VentureBeat报道,随着苹果越来越接近发布传闻中的Siri智能扬声器,现在的问题是这个科技巨头是否能在智能扬声器市场抢占一席之地。毕竟苹果进入这个市场的时机已经很晚,且谷歌Google Home和亚马逊Alexa支持的智能扬声器Echo与Dot已经在市场上占据主导地位。当然,苹果已经创造了辉煌的历史,有多次“后来居上”的先例。iPod不是首款MP3
2017-06-03 23:36:22 326
转载 Uber 谷歌Waymo也开始研发自动驾驶卡车
(原标题:正面刚Uber 谷歌Waymo也开始研发自动驾驶卡车) 据The Verge报道,任何 Uber可以做到的事情,从谷歌剥离出来的、现置于谷歌母公司 Alphabet 旗下的 Waymo 自动驾驶公司显然也能做到。在 Uber 收购 Otto 卡车公司并启动自动驾驶卡车研发一年之后,Waymo 也被曝出正在测试自主的自动驾驶卡车技术。 Way
2017-06-02 22:56:32 367
转载 AlphaGo之父哈萨比斯: 先解决智能 再用智能解决一切
(原标题:AlphaGo之父哈萨比斯: 先解决智能 再用智能解决一切)刘佳当全世界的创业者以为最前沿的技术创新来自硅谷时,一家创造出了AlphaGo的英国公司DeepMind成为了人工智能领域里最耀眼的明星。得米斯·哈萨比斯(DemisHassabis)就是那个站在AlphaGo背后的“超级英雄”。今年5月,这个拥有1/4中国血统的AI明星第一次来到中国,在乌镇发布
2017-06-01 22:31:12 297
转载 C语言指针总结
你需要知道关于C语言指针的一切指针的定义指针是内存地址。(嗯,简短的段落。)开始假设你声明一个名为foo的变量。int foo;这个变量占用一些内存。 在当前主流的Intel处理器上,它占用四个字节的内存(因为int是四个字节宽)。现在让我们声明另一个变量。int *foo_ptr = &foo;
2017-05-31 22:29:46 169
转载 C语言总结
C语言高级部分 一、内存大话题1.0、内存就是程序的立足之地,体现内存重要性。1.1、内存理解:内存物理看是有很多个Bank(就是行列阵式的存储芯片),每一个Bank的列就是位宽 ,每一行就是Words,则存储单元数量=行数(words)×列数(位宽)×Bank的数量;通常也用M×W的方式来表示芯片的容量(或者说是芯片的规格/组织结构)。 M是以位宽
2017-05-30 21:17:14 272
转载 数据结构(c语言版)学习笔记——排序算法
这几日整理出了大一时学习的数据结构中排序算法中的部分内容,写了一个简单的排序算法的程序。想写出来分享一下,也算是自己的学习日记。程序功能是: 输入一个待排序记录序列,选择一种算法,然后输出一个有序的序列。一、运行过程及截图如下:1、输入一个有序序列长度,回车,输入各个记录的关键字,如下图2、回车,打印出算法选择列表,选择你要选择的算法(比如选1、直接插入排序
2017-05-29 22:57:07 346
转载 卸货自行车
网易科技讯 5月27日消息,《连线》网站撰稿人迈克尔·卡洛雷(Michael Calore)在体验Yuba Supermarche载货自行车数周后撰文指出,在它身上看到了城市交通的未来,它给我们展示了如何扩大自行车在城市的用途。以下是文章主要内容:我第一次骑Yuba Supermarche载货自行车的时候,它比起我那辆轻盈敏捷的汽车感觉就像是只笨拙的怪兽。但在旧金山骑了几个星期之后
2017-05-28 22:56:58 219
转载 自动化如何影响到你?传统5天工作制或成过去
网易科技讯5月25日消息,据BBC报道,越来越多的公司正开始引入智能机器,以取代效率低下、成本高昂的人类雇员。那么有关自动化你需要了解哪些东西?以及它会对你的工作造成什么样的影响?使用柔软而灵活的手指,这条机器手臂可以伸到货架上捡取苹果,然后将它轻轻放入篮子中。接着它又去执行其他任务,比如搬酸橙、取胡椒等,它永不知疲倦,也不会抱怨。这就是英国在线超市Ocado正在测试的原型机器
2017-05-28 22:53:55 309
转载 c语言排序
1)“冒泡法” 冒泡法大家都较熟悉。其原理为从a[0]开始,依次将其和后面的元素比较,若a[0]>a[i],则交换它们,一直比较到a[n]。同理对a[1],a[2],...a[n-1]处理,即完成排序。下面列出其代码:void bubble(int *a,int n) /*定义两个参数:数组首地址与数组大小*/ { int i,j,temp; for(i=0;ifor(j=i+1;jif(a[i]
2017-05-26 23:45:24 240
转载 冒泡排序
在开发中,对一组数据进行有序地排列是经常需要做的事情,所以掌握几种甚至更多的排序算法是绝对有必要的本文章介绍的是排序算法中较简单的一种算法:冒泡排序题外话:在深入学习更多排序算法后和在实际使用情况中,冒泡排序的使用还是极少的。它适合数据规模很小的时候,而且它的效率也比较低,但是作为入门的排序算法,还是值得学习的先尝试用最简单的想法去实现排序,以此来比较学习冒
2017-05-26 23:21:27 177
转载 快速排序
快速排序是对冒泡法排序的一种改进。快速排序算法 的基本思想是:将所要进行排序的数分为左右两个部分,其中一部分的所有数据都比另外一 部分的数据小,然后将所分得的两部分数据进行同样的划分,重复执行以上的划分操作,直 到所有要进行排序的数据变为有序为止。可能仅根据基本思想对快速排序的认识并不深,接下来以对n个无序数列A[0], A[1]…, A[n-1]采用快速排序方法进行升序排列为例进
2017-05-24 21:58:54 228
转载 解读今年的 Google IO 2017
今天现场体验了 IO 大会,那感觉真的棒呆了,特别震撼,用老外的话说就是 Amazing!我做的位置还是蛮靠前的,来一张我的位置拍的照:另外,你们可能不知道,因为我觉得这次机会蛮难得的,就想着能让一些朋友与伙伴感受下现场的氛围就最好了,于是就在 IO 大会之前偷偷开了场直播,在只发了朋友圈和小密圈的情况下,而且北京时间还是凌晨,竟然有 3000 多人观看了我的直播,反应都还不错,今
2017-05-23 23:12:07 191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人