自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 资源 (2)
  • 收藏
  • 关注

原创 c++11新特性

文章目录右值引用右值引用用途:加快容器操作右值是临时对象,如数值1,函数返回值等注意:右值不能放等号左边,只能放等号右边当右值出现在赋值运算符=的右侧时,我们认为对其资源进行偷取/搬移(move)而非拷贝(copy)是合理的,依次:1.必须有语法让我们在调用端告诉编译器这是一个右值.2.必须有语法让我们在被调用端写出一个专门处理右值的移动赋值函数.专门处理右值的函数使用value_type&&声明参数:iterator insert(const_iterator __pos

2021-08-11 20:55:58 269

原创 c++标准容器库与泛型编程

文章目录STL六大组件容器分类Hash与红黑树的区别STL六大组件STL六大组件包括容器(container)、分配器(allocator)、算法(algorithm)、迭代器(iterator)、适配器(adapter)和仿函数(functor).容器分类STL中的容器大体分为序列容器、关联容器和无序容器.vector:动态数组随着元素的加入,它的内部机制会自行扩充空间以容纳新元素,并不是在原空间之后持续新空间,而是以原大小的两倍另外配置一块较大的空间,然后将原内容拷贝过来,然后才开始在原

2021-07-26 19:25:26 440 6

原创 数据结构- 栈和队列的实现

文章目录栈队列栈采用数组实现#include<iostream>typedef int DataType;using namespace std;typedef struct Stack{ DataType* _array; int _top;// 表示有效元素个数 表示栈顶位置 int _capcity;//栈容量}Stack;void StackInit(Stack* s){ s->_array = (DataType*)malloc(sizeof(Dat

2021-07-20 21:40:20 188

转载 数据结构-二叉搜索树插入和删除

转载:https://blog.csdn.net/xiexiexiexieqing/article/details/117468490插入:void in(struct TREE*tree,struct DATA data){ struct node*pmove=tree->root; //pmove先等于搜索树的根节点 pmove 在前面探路 struct node*pnode=NULL; //pnode 紧跟在 pmove 的后面

2021-07-17 18:14:28 182

原创 c++面向对象高级编程(上)

文章目录头文件结构内联函数构造函数常量成员函数传值、传指针、传引用的区别头文件结构防卫式声明,防止头文件被重复包含模板,类似于泛型template<typename T>//内联函数在类声明内定义的函数,自动成为inline函数;在类声明外定义的函数,需要加上inline关键字才能成为inline函数.在编译时未必会真正被编译为inline函数.因此如果函数足够简单,我们就把它声明为inline就好了.构造函数C++的构造函数也可以有默认实参.C++构造函数的特殊之处在

2021-07-14 21:50:59 366 8

原创 力扣142. 环形链表 II

题目:本题使用快慢指针,第一步:只要快慢指针能相遇就有环,相遇点在环中第二步:当从相遇点和头结点都有一个指针以相同速度出发,第二次相遇就是环形入口,为什么?设头结点到环形入口点距离为a,入口点到相遇点距离为b慢指针走的路程为c=a+b,而快指针速度是满指针的两倍,2c=2a+2b,轨迹为A->B>C>D>B>C,其中BC走两次为2b,AB为a,所以从C点到B点这段距离为a,也就是头结点A到环形入口点距离B代码:/** * Definition for sin

2021-07-07 12:55:45 73

原创 数据结构的1.哈希表实现

哈希表哈希表hash table(key,value) 的做法其实很简单,就是把Key通过一个固定的算法函数既所谓的哈希函数转换成一个整型数字,然后就将该数字对数组长度进行取余,取余结果就当作数组的下标,将value存储在以该数字为下标的数组空间里。而当使用哈希表进行查询的时候,就是再次使用哈希函数将key转换为对应的数组下标,并定位到该空间获取value,如此一来,就可以充分利用到数组的定位性能进行数据定位。实现:#include <stdlib.h>#include <io

2021-07-05 23:05:37 121 1

原创 计算机图形学入门-1.向量与线性代数基础

b站:https://www.bilibili.com/video/BV1X7411F744?p=3点这里上面b站up主将特别详细,本文做总结罢了之前也看学过opengl,一些shader啥的,可发现异常的困难,原来是少这方面的知识OpenGL,directx 是图形学的一个api光栅化:是将三维空间的几何形体显示在平面上1.向量的点乘点乘满足交换律,结合律,分配律两个作用:1.算夹角,先算cos,再反cos,右边是如果求两个单位向量的余弦2.算b在a上的投影应用:得到一个向量3个

2021-06-02 22:08:54 407 1

原创 unity与android交互-2.c#调用java代码

目录制作jar包制作jar包创建一个java module,两种方式第一种:点击File->new Module,选择anroid Library第二种:直接新建一个空项目,修改build.gradle里的内容就是把plugins的id改为com.android.library,android里处这两行其余内容删掉,然后点击sync就会发现我们的项目变成了java module这里在包下新建test类,写个java测试代码,待会供c#调用package com.exampl

2021-06-01 20:38:48 311 2

原创 unity打包-1.打包安卓apk

看别人的博客安装应该作用不大这里推荐b站一位博主的教程点这里,看前两个视频即可我也是跟着上面装的,运气挺好没遇到什么比较大的问题1.首先保证你安装了android的模块,如果使用unity hub无法安装android模块,点这里在buidlingSetings中点击switch platform切换为android平台2.点playsetting里的playercompany Name:公司名product name:产品名(app名)vertion:版本号default icon:a

2021-05-31 10:19:14 5434 2

转载 unity打包-1.Asset Bundle资源打包

转自:点这里上面这篇讲得比较详细,先去看看我这里补充一些上面没有的东西1.创建CreateAssetBundles的脚本,加上如下代码,我的会报错#if UNITY_EDITOR#endif2.采用自定义路径创建ab包,贴下我的代码using UnityEditor;using System.IO;using System.Collections.Generic;using UnityEngine;public class CreateAssetBundles{ #if U

2021-05-30 10:50:56 727

转载 unity创建脚本自动添加头注

转载:https://itmonon.blog.csdn.net/article/details/117330558using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;public class FirstComment : UnityEditor.AssetModificationProcessor{ public static void OnWillCr

2021-05-28 20:02:25 214

原创 c#设计模式-结构型模式-7.代理模式

代理模式:为其它对象提供一个代理的访问简单讲这件事不能由我来做,应该交给一个合适的人来做例子,比如某明星不火了想炒作一下,这件事肯定不是明星在做,而是交给经纪人来做,经纪人就是代理人,然后明星就出现在发布会上,其实我也是个受害人呀,将事情交给合适的对象做可以避免不必要的问题using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;

2021-05-26 21:51:46 87

原创 c#设计模式-结构型模式-6.享元模式

享元模式:共享之前创建过的对象,对象复用看例子吧例子,就是比如我需要20个上兵,一半是陆军,一半是海军,我们不是new20个对象,而是如果创建的是陆军的对象,如果之前创建过陆军对象,就不需要重新new了,直接从list中取就好了,遇到新的兵种时,再加到list里,然后下一次就不需要new了,重复这个过程using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Th

2021-05-26 20:52:56 92

原创 c#设计模式-结构型模式-5.外观模式

外观模式:定义一个高层接口,为子系统提供一个一致的界面其实就是客户端调用最上层的接口,其他类均在这个接口里通过组合方式使用例子,比如我们购买商品,需要一些验证:1、身份验证安全,没有认证是无效用户。2、系统安全,检查系统环境,防止注入、跨站和伪造等攻击3、网银安全,检查付款地址的有效性,检查网关是否正常using System;using System.Collections.Generic;using System.Linq;using System.Text;using Syste

2021-05-26 19:45:34 85

原创 c#设计模式-结构型模式-4.组合模式

组合模式:将对象组合成树形结构以表示“整体-部分”的关系比较形象的比喻,俄罗斯套娃例子,比如一个文件下有ppt,word,子文件夹,子文件下又可以装东西一个公司下可以有很多部门,部门下有员工如果当前节点为word就不能创建文件夹了,只能编辑,所以组合模式分为透明式和安全式透明式:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.

2021-05-26 17:51:12 125

原创 C#设计模式-结构型模式-3.装饰者模式

装饰者顾名思义就是对一个类添加一些额外的装饰(功能)结构图:具体装饰类concreteDecorate就是我们要添加的功能例子,比如我们盖了一个房子,我们想要装修房子,更安全或者更好看using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 装饰者模式{ //房子抽象接口,component类型

2021-05-25 20:57:19 93 1

原创 c#设计模式-结构型模式-2.桥接模式

桥接模式用于将抽象化和实现化解耦,使得两者可以独立变化。其实两个都是抽象的部分,一个事务多个维度的变化分离在面向对象中用通俗的话说明:一个类可以通过多角度来分类,每一种分类都可能变化,那么就把多角度分离出来让各个角度都能独立变化,降低各个角度间的耦合结构图:例子,我们想让不同数据库版本在不同的平台上运行,当然里面的方法内容也不一样abstraction充当我们的数据库,而implementor充当对应的平台代码核心:在抽象化角色里利用组合引用实现化角色的接口,也就是桥梁using System

2021-05-25 18:26:14 151 1

原创 c#设计模式-结构性模式-1.适配器模式

创建型:解决对象创建问题结构型:解决类和对象的组合关系的问题适配器模式:将一个类的接口,转换成客户端希望的另外一种接口,适配器作为原始接口(我们的类中本来具有的功能)和目标接口(客户端希望的功能)之间的桥梁例子,我像让我手机的两孔插头插到排插上的3孔插座,我们需要一个“转接头”,转接头充当我们的适配器适配器模式有两种类型:类适配器和对象适配器,类适配器通过多重继承实现接口的匹配,C#不支持多重继承,我们不考虑。我们主要介绍对象适配器。首先说明介绍适配器模式的三个角色:Adaptee:初始角色,实现

2021-05-24 22:27:16 111

原创 uml图的6种关系

泛化:继承,子类与父类实现:子类与接口关联:拥有关系,当前类可以知道另一个类的成员,如:老师与学生,老师得知道学生今天有没有缺勤的,我今天外出看天气会不会下雨聚合:整体与部分,如车和轮胎组合:整体与部分,没有公司就没有部门,关系比聚合强,部门能独立公司单独存在吗,明显不行,而轮胎可以单独存在依赖:比如我上网需依赖计算机泛化:空心三角形+实线,子类指向父类实现:空心三角形+虚线,类指向接口聚合:空心菱形+箭头,整体一端为空心菱形指向部分组合:实心菱形+箭头,整体一端为实心菱形指向部分关联:

2021-05-24 22:03:13 205

原创 c#设计模式-创建性模式-3.原型模式

原型模式:当我们需要创建相同类的实例时,创建好一个实例后,其它的通过拷贝获取就原型接口和具体原型类,具体原型类多写一个克隆方法而已解决问题:当一个类的实例化过程很复杂或昂贵,反复new创建实例会增加创建类与客户端代码的耦合度,所以我们需要克隆例子,孙悟空只要吹一下毛就可以变出很多猴子,可以一部分保护师傅,一部分战斗using System;using System.Collections.Generic;using System.Linq;using System.Text;using Sy

2021-05-23 22:05:25 94

转载 c#基础-20、深拷贝与浅拷贝

先说结论:浅拷贝,在修改类的属性时,值类型在栈上不是同一块内存空间(不变),而引用类型在堆上是同一块内存空间(改变)深拷贝,在修改类的属性时,值类型和引用类型都不会是同一块内存空间,跟原来没有关系了using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace test{ class Program

2021-05-23 21:29:54 160

原创 c#设计模式-创建性模式-2.建造者模式

建造者模式:将一个复杂对象将构造与其表示分离,使得同样构造过程创建不同表示例子,一个车由窗户、引擎、车轮等等子物体构成,用户选择好对应的车子品牌之后,指导者就建造哪个牌子的车using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 建造者模式{ //指挥者,类似老板,可在客户端决定建造哪个牌子的车

2021-05-23 12:29:45 108 1

转载 c#设计模式-创建性模式-1.简单工厂、工厂方法、抽象工厂模式

目录简单工厂模式工厂方法模式抽象工厂模式简单工厂模式现实中的工厂负责生产产品,顾名思义,编程中的简单工厂就是一个生产对象的类,它的主要作用是创建具体的产品类实例。我们以一个生产鼠标为例来分析简单工厂的作用,鼠标有两种:戴尔鼠标和惠普鼠标,代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 简单

2021-05-22 12:07:34 183

原创 c#设计模式及-行为性模式-10.备忘录模式

备忘录模式:在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存该状态。等需要的时候可以将对象恢复到原先保存的状态例子,我在看手机联系人列表,突然不小心把某个联系人删掉了,就可以用备忘录恢复联系人列表using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 备忘录模式{ //联系人,数据

2021-05-21 20:19:17 78 1

原创 c#设计模式-行为性模式-9.责任链模式

责任链模式:避免请求者和接收者耦合在一起,让多个对象都有可能接受请求,这些对象通过一个链连接,沿着这条连传输请求,直到没有对象处理结束例子,比如公司采集物品,不同金额需要不同权限的人来审批,金额小于1000部门经理审批,大于1000需财务经理审批图的话就没有了,因为还是不同对象继承一个接口,根据请求的金额决定要不要往高层的对象传递核心的两句: manager.nextApprover = finalcialManager; finalcialManager.nextApp

2021-05-21 10:50:37 440 2

原创 c#设计模式-行为性模式-8.策略模式

策略模式:定义一系列算法,把它们封装起来,使得算法可独立于它们的用户而变化例子:公司里不同职位工资不一样,普通员工工资低点,而高管工资高点类图:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 策略模式{ public sealed class SalaryContext {

2021-05-21 09:54:50 123 2

原创 c#设计模式-行为性模式-7.状态模式

状态模式就是一个对象的状态改变时,它的行为也会改变使用情况:(1)、对象的行为依赖于它的状态(属性)并且可以根据它的状态改变而改变它的相关行为。(2)、代码中包含大量与对象状态有关的条件语句,这些条件语句的出现,会导致代码的可维护性和灵活性变差,不能方便地增加和删除状态,使客户类与类库之间的耦合增强。在这些条件语句中包含了对象的行为,而且这些条件对应于对象的各种状态比如:1个订单,用户下单,商家受理,商家发货,确认收货,收货成功这几个状态,当然用户也可以选择取消订单(不签收)的状态通过实现同一个S

2021-05-19 22:28:30 922 6

转载 c#设计模式-行为性模式-6.中介者模式

中介者模式,定义了一个中介对象来封装一系列对象之间的交互关系,中介者使各个对象之间不需要显式地相互引用,从而降低耦合简单记忆:一对多变成一对一比如:这时是赢家找输家要钱 赢家a和输家b是直接通信的。当玩家比较多的时候,例如a赢了,bcde四个玩家都会输5元,那么a就要和bcde玩家都要通信。如果我们引入一个中间人来负责统一结算,赢家就可以直接找中间人结算,不必直接找所有的输家要账了图:用到的c#知识”1.当父类为抽象类时,子类构造函数必须要调用父类构造函数以完成父类初始化2.构造函数也可以在

2021-05-19 21:02:19 102

原创 unity切换场景,物体不销毁

在跳转场景的触发事件中,将背景音乐绑定的对象做成预制体,上面绑定了播放音乐的脚本test1和audioSource组件test1.csusing System.Collections;using System.Collections.Generic;using UnityEngine;public class test1 : MonoBehaviour{ //public static test1 instance; private AudioSource source;

2021-05-19 11:50:29 2384

原创 c#设计模式-行为性模式-5.命令模式

比如,奶奶今天想吃饺子,将命令发布给爸爸,爸爸就得去做饺子奶奶属于请求者角色,发布做饺子命令为具体命令,爸爸充当接收者角色其实命令模式就是请求者将要做的事情告诉接收者,中间需要经过一个抽象命令接口,然后具体实现如图:例子:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 命令模式{ /

2021-05-18 21:27:39 138 1

转载 c#设计模式-行为性模式-4.模板方法模式

提到模板我们经常会想到简历模板/PPT模板等,以简历模板为例,不同的人可以使用一样的简历模板,在填充内容时根据自己的名字/工作经历等填写自己的内容,从而形成不同的简历。在OO中模板方法模式和现实中的模板十分相似,首先要有一个封装了不可变部分的抽象类(简历的大致结构,都有姓名、性别、年龄、工作经历等),然后将可变部分延迟到子类中(不同人的简历内容不同,这些不同的内容放在子类中实现),模板方法就是多态的一种实现。抽象类中模板方法不仅仅可以定义内容的,也可以定义执行的顺序。以游戏厅打游戏为例,我们去游戏厅不管玩

2021-05-18 18:10:57 67

转载 c#设计模式-行为性模式-3.迭代器模式

迭代器模式的实现:提供一种方法顺序访问1个聚合对象(类)的各个元素,而不暴露内部的表示先看下数组的遍历:using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace 迭代器模式{ class Program { static vo

2021-05-18 17:23:35 53

原创 c#设计模式-行为性模式-2.观察者模式

观察者模式是一种通知依赖关系,一个对象的状态发生改变,所有依赖的对象(观察者)都将得到通知并自动更新优点:1.观察者模式实现了表示层与逻辑层的分离2.观察者与被观察者之间建立一个抽象的耦合,被观察者不知道任何一个具体的观察者,只是保存在列表中3.支持广播通信缺点:1.当被观察者有很多观察者时,通知所有观察者会很浪费时间,当然可以筛选2.观察者模式不知道观察的对象是怎样发生变化的3.被观察者有循环依赖的话,被观察者会1触发它们进行循环调用using System;using System

2021-05-17 22:25:48 103 2

原创 c#基础-19.重写(override)和覆盖(new)的区别

重写 override用 virtual 修饰的方法,叫虚方法。重写会改变父类方法的功能。覆盖 new在子类中用 new 修饰 定义的与父类中同名的方法,叫覆盖。覆盖不会改变父类方法的功能。代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace @override{ class An

2021-05-17 09:18:01 119

转载 Unity 使用JSON实现本地数据保存和读取

转载:https://czhenya.blog.csdn.net/article/details/78057062目前接触的unity 解析json 有几种:1.比较流行的listjson(数据对象必须和json一对一)2.目前unity自带 JsonUtility(不能解析复杂的json)3.Newtonsoft.Json (推荐可以解析复杂的json,不需要和json字段一对一 ,灵活)(下载地址:https://github.com/SaladLab/Json.Net.Unity3D/rel

2021-05-16 20:54:18 1471

原创 unity的ugui-9.搭建一个简单的背包

目录常用rectTransform的api脚本搭建背包常用rectTransform的api脚本何为常用?被我碰到那就是常用的RectTransform.anchoredPosition瞄点的中心点坐标RectTransform.anchorMax父 RectTransform 中右上角锚定到的标准化位置。RectTransform.anchorMin父 RectTransform 中左下角锚定到的标准化位置。RectTransform.GetWorldCorners获取计算的矩形在世界

2021-05-14 22:50:38 838 14

原创 unity的ugui-8.scroll view无限循环列表

目录操作用到的api操作之前文章有,简单写一下新建scroll view,,,取消水平滑动将viewport-》content修改至如下面版,间距可以自己调在content下新建image,调至合适大小,做成预制体,注意观察预制体的rectTransfrom有没有变动,有的话改一下用到的apipublic void GetWorldCorners(Vector3[] fourCornersArray);可以得到ui的recttransfrom的矩形区域的4个点坐标transfrom.c

2021-05-07 22:11:06 1913 9

原创 unity的ugui-7.scroll view分页滚动

目录用scroll view做个滑动页面用scroll view做个滑动页面我们新建scroll viewHorizontal —> 水平滑动Vertical —> 竖直滑动,取消勾选后不能滑动同时隐藏滑动条Inertia — > 惯性 ,使用时如果被勾选,当你滑动结束后仍会产生一定的移动操作:在scroll view面板取消勾选 Vertical,只让它你水平滑动即可在scroll view->viewport的content添加两个组件grid

2021-05-03 17:01:27 1649 5

原创 unity打包webgl-3.简单的ui界面

首先你的unity版本要安装webgl的模块无法添加模块点这里就修改了playsettings里的Resolution and presention里面的大小还有other settngs里的strip engine code,如果build报错,可取消勾选我遇到的第一个错:1.Unity Build报AssetDatabase、EditorUtility的错Unity已经准备好了“模式”宏定义:UNITY_EDITOR使用以下语句包裹含有编辑器类库使用的代码段即可使Unity在Build

2021-05-03 11:04:21 563

Navicat.zip

Navicat Premium 15

2021-04-26

26个字母素材生成的.fnt和.png

用26个字母素材生成的,网上素材少,我生成的不是透明背景的,会用bmfont的建议自己生成,我这个有点丑

2020-11-27

空空如也

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

TA关注的人

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