自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 在学习软件过程中对机械的思考

初步重构对于机械设备,尤其是高度自动化的非标设备,应当具有架构的概念,首先基于初步设计,应当对完整流程进行分解。分解完成后,就会获得一个个子模块,这个时候,模块与模块间的耦合程度还是很高的,主要体现着时间(下游模块等待上游模块)和空间(机械结构的穿插和紧连接)的耦合上。其次,根据各模块的职能进行功能搬运。比如有一个工序在A模块中,但是在B模块中使用的更加频繁,那么就应该想办法将其搬运到B模块中。在整理和内聚的过程中,模块与模块之间的边界会越来越清晰,最终可以清晰的观察到模块的对外服务与产出,到此接口初

2021-06-29 11:49:39 161

原创 判断一颗树是否是平衡二叉树

判断一颗树是否是平衡二叉树采用DFS自底向上递归采用DFS自底向上递归基本思路:用一个bool型类成员变量flag记录子树是否满足需要。递归方式如下:获取当前节点root的左子树深度left和右子树深度right。如果left和right的差值超过1,则说明不满足平衡二叉树的条件。然后root取子树中较深的那个,将其+1返回给上一层。class Solution {public: bool flag; bool isBalanced(TreeNode* root) {

2021-01-14 10:28:57 138

原创 用户数据报协议UDP

计算机网络——UDP用户数据报协议UDP概述UDP的主要特点UDP是无连接的,减小了开销和发送数据之前的时延用户数据报协议UDP概述UDP只是在IP数据报服务上增加了一些功能,即复用分用和差错控制。UDP的主要特点UDP是无连接的,减小了开销和发送数据之前的时延和TCP不同,UDP数据发出去就不管了,数据的传输可靠性由上层的应用层进行保证。...

2021-01-01 11:28:34 444

原创 单例模式(不满5个字不能作为文章名是什么鬼设定)

设计模式——单例模式单例模式单线程下的单例模式多线程时的单例模式单例模式单例模式的目的是为了类可以通过自己内部的判断,从而生成有限个的实例化对象。单线程下的单例模式基本原理就是将类的构造函数私有化(private)。另外开一个实例化的对外接口(public),在接口中进行检测,如果已经生成过对象则不再生成对象。class Singleton{ //定义一个静态成员用于之后接口中的判断 private static Singleton instance; private Singleton(

2021-01-01 10:37:37 234 1

原创 为什么父类的析构函数必须是虚函数,而C++默认的析构函数不是虚函数?

为什么父类的析构函数必须是虚函数,而C++默认的析构函数不是虚函数?因为当我们用基类指针指向new出来的子类时,根据动态绑定可以确保子类新添加的部分也可以被顺利释放掉,以防出现内存泄漏。而默认的析构函数不是虚函数的原因是因为:虚函数需要额外的虚函数表和虚表指针,会占用格外内存,对于不会有子类的类来说,这个是没有必要的。虚函数和虚表指针:https://blog.twofei.com/496/...

2020-12-31 17:30:14 935

原创 C++指针和数组的区别

2020-12-31 17:14:37 182 1

原创 C++智能指针

C++智能指针智能指针概述shared_ptrunique_ptweak_ptr智能指针概述智能指针存在的目的是为了能够更加容易和安全的使用动态内存。分为三类:共享型shared_ptr、独占型unique_ptr和伴随型weak_ptr。shared_ptrshared_ptr实现共享式拥有概念。多个智能指针可以指向相同对象,该对象和其相关资源会在“最后一个引用被销毁”时候释放。它使用计数机制来表明资源被几个指针共享。可以通过成员函数use_count()来查看资源的所有者个数。除了可以通过new

2020-12-31 14:32:12 76

原创 C/C++中指针和引用的区别

C/C++中指针和引用的区别指针有自己的空间,而引用只是一个别名使用sizeof看一个指针的大小是4,而引用则是被引用对象的大小指针可以被初始化为NULL,而引用必须被初始化且必须是一个已有对象 的引用作为参数传递时,指针需要被解引用才可以对对象进行操作,而直接对引 用的修改都会改变引用所指向的对象可以有const指针,但是没有const引用指针在使用中可以指向其它对象,但是引用只能是一个对象的引用,不能 被改变指针可以有多级指针(**p),而引用至于一级指针和引用使用++运算符的意义不一样如果返回动态内存

2020-12-31 13:51:25 431

原创 static关键字的作用

C++语言大类基本语言说一下static关键字的作用说一下C++和C的区别C++中的四种cast转换C/C++中指针和引用的区别基本语言说一下static关键字的作用1.在全局变量之前加上关键字static,则该变量被进一步定义成全局静态变量。static修改标识符的链接类型external->internal。使得这些符号只能在声明他们的源文件中使用。存储在静态存储区,在整个程序的运行期间一直存在。未经初始化的全局静态变量会被自动初始化为0。全局静态变量在声明它的文件外是不可见的,从定义处到文

2020-12-30 21:52:28 110

原创 C++中的四种cast转换

C++中四种类型转换是:static_cast, dynamic_cast, const_cast, reinterpret_cast。1.const_cast用于将const变量转化为非const。2.static_cast用于各种隐式转换,比如非const转const,void*转指针。能用于多态向上转换,向下转换能成功但是不安全。3.dynamic_cast***用于动态类型转换,只能用于含有虚函数的类,用于类层次间的向上和向下转换,只能转指针或引用。向下转化时,非法情况下,对指针返回NU

2020-12-30 21:48:56 371

原创 C++和C的区别

设计思想上:C++是面对对象的语言,而C是面向过程的结构化编程语言。语法上:C++具有封装、继承和多态三种特性。C++相比C,增加了许多类型安全的功能,比如强制类型转换。C++支持泛型编程,比如模板类、函数模板等。...

2020-12-30 21:26:19 157

原创 已知三角形平面直角坐标求三角形的面积

已知三角形坐标求面积假设在平面直角坐标系中,用类point存储坐标点。class point{ double x;//point的横坐标x double _y;//pointd的纵坐标y public point(int _x,int _y){ x=x; y=y; }}double GetTriangleSquar(const point A,const point B,const point C){ int x1=B.x-A.x; int y1=B.y-A.y; int x

2020-12-30 19:32:48 314

原创 排序算法汇总

排序算法汇总一些基本概念排序方法的稳定性内排序和外排序排序算法性能的影响因素七个具体的排序算法冒泡排序简单选择排序一些基本概念排序方法的稳定性对于一个乱序的代码,如果其中值相同的两个记录在排序后前后关系不变,我们认为该排序方法是稳定的。内排序和外排序内排序指的是所有待排序的记录都在内存中。外排序则是由于数据过大部分数据在内存在导致的,在排序过程中需要交换数据。排序算法性能的影响因素1.时间性能对于内排序中,主要操作主要是:比较和移动。高效率的内排序算法应该是具有尽可能少的关键字比较次数和尽可

2020-12-30 11:05:07 226

原创 Modbus协议

Modbus协议基本知识Modbus协议的官方介绍通讯格式波特率校验方式数据位停止位两种通讯方式ASCII方式RTU格式Modbus协议的官方介绍Modbus是一种单主站的主/从通信模式。Modbus网络上只能有一个主站存在,主站在 Modbus网络上没有地址,从站的地址范围为 0 - 247,其中 0 为广播地址,从站的实际地址范围为 1 - 247。 Modbus通信标准协议可以通过各种传输方式传播,如 RS232C、RS485、光纤、无线电等。Modbus具有两种串行传输模式,ASCII 和 R

2020-12-25 21:58:00 4052

原创 数据结构与算法之刷题——如何将链表从尾到头的存放到容器中去

方法一:利用堆栈进行弹栈存储思路如下:首先将链表中的值,按顺序存放到堆栈中去,然后利用栈先进后出的特性,将值弹出并保存到容器中去。代码如下:// class Solution {public: vector<int> printListFromTailToHead(ListNode* head) { vector<int> value; ListNode *p=NULL; p=head;

2020-08-01 10:59:34 145

原创 C++二维容器vector的使用及一个经典案例

C++二维容器vector的使用及一个经典案例vector(容器)的调用及初始化二维vector的插入元素经典案例---查找某元素target是否存在二维数组vector中vector(容器)的调用及初始化C++使用vector前需要调用其头文件,为了方便最好还要使用命名空间,输入如下:#include<vector>using std::vector;需要注意的是,vector不能容纳对象引用作为其元素,因为引用不是一个对象。在C++11中,二维容器的定义式可以写成vector&lt

2020-07-22 15:23:53 10051 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除